Faqet si të dhëna, UI përmes zgjidhësit
Ruaj vetëm metadatat në PageEntry. Përdor buildPage për ta mapuar çdo çelës faqeje në widget-in real.
Gjendje e serializueshme
PageEntry është të dhënë e thjeshtë, ndaj gjendja e navigimit mund të regjistrohet, krahasohet dhe riprodhohet.
Zgjidhës i thjeshtë
Një switch mbi page.key e mban routimin të qartë dhe të rishikueshëm.
Një burim i vetëm i së vërtetës
Push dhe pop janë operacione liste mbi _pages, jo efekte anësore.
Modeli i zgjidhësit
Ndërto sipas çelësit të faqes dhe ndrysho listën e faqeve në mënyrë deklarative.
Rregulli i gjendjes së faqeve
Shembull i zgjidhësit
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')]);
}
Mbaji metadatat të lehta
Shmang vendosjen e instancave Widget brenda gjendjes së navigimit dhe mbaje PageEntry si metadata të pastra për mirëmbajtje më të lehtë.
E mëparshmja
InstalimiTjetra
Mbivendosjet