Страници како податоци, UI преку резолвер
Чувајте само метаподатоци во PageEntry. Користете buildPage за да го мапирате секој клуч на страница на вистински widget.
Серијализирачка состојба
PageEntry е обичен податок, па состојбата на навигацијата може да се запише, спореди и повтори.
Едноставен резолвер
Switch на page.key го прави рутирањето експлицитно и прегледливо.
Еден извор на вистина
Push и pop се операции на листата _pages, не нуспојави.
Шема на резолвер
Градете според клучот на страницата и менувајте ја листата на страници декларативно.
Command
Пример за резолвер
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 како чисти метаподатоци за полесно одржување.
Претходно
ИнсталацијаСледно
Резолвери