Беттер маалымат катары, UI резолвер аркылуу
PageEntry ичинде метадайындарды гана сактаңыз. Ар бир беттин ачкычын чыныгы widget'ке карта кылуу үчүн buildPage колдонуңуз.
Сериалдаштырылуучу абал
PageEntry жөн гана маалымат болгондуктан, навигация абалын журналга жазууга, diff кылууга жана кайра ойнотууга болот.
Жөнөкөй резолвер
page.key боюнча switch колдонуу багыттоону айкын жана карап чыгууга ыңгайлуу кылат.
Булактын бир гана чындыгы
_pages ичиндеги push жана pop - side effect эмес, тизмек операциялары.
Резолвер үлгүсү
Бет ачкычы боюнча куруп, беттер тизмесин декларативдүү түрдө өзгөртүңүз.
Бет абалынын эрежеси
Резолвер мисалы
Widget _buildPage(BuildContext context, PageEntry page) {
switch (page.key) {
case 'home':
return HomePage(onGoDetail: _goDetail);
case 'detail':
return const DetailPage();
default:
return const SizedBox.shrink();
}
}
void _goDetail() {
setState(() => _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')]);
}
Метадайындарды жеңил кармоо
Навигация абалына Widget инстанцияларын салуудан алыс болуңуз жана PageEntry'ди колдоого жеңил таза метадайын катары кармаңыз.
Мурунку
ОрнотууКийинки
Overlay-лер