Strani kot podatki, UI prek razreševalnika
V PageEntry shranite samo metapodatke. Uporabite buildPage, da vsako page key preslikate v dejanski widget.
Serializabilno stanje
PageEntry so goli podatki, zato je mogoče navigacijsko stanje beležiti, primerjati in ponovno predvajati.
Preprost razreševalnik
Switch na page.key ohranja usmerjanje eksplicitno in pregledno.
En sam vir resnice
Push in pop sta operaciji na seznamu _pages, ne stranska učinka.
Vzorec razreševalnika
Gradite po ključu strani in deklarativno spreminjajte seznam strani.
Pravilo stanja strani
Primer razreševalnika
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')]);
}
Metapodatki naj ostanejo lahki
Izogibajte se postavljanju instanc Widget v navigacijsko stanje in ohranite PageEntry kot čiste metapodatke zaradi boljše vzdržljivosti.
Nazaj
NamestitevNaprej
Prekrivni sloji