Stránky ako dáta, UI cez resolver
Do PageEntry ukladajte len metadáta. Použite buildPage na mapovanie každého kľúča stránky na skutočný widget.
Serializovateľný stav
PageEntry je obyčajný údaj, takže stav navigácie možno logovať, porovnávať a znovu prehrávať.
Jednoduchý resolver
Switch nad page.key drží routovanie explicitné a ľahko kontrolovateľné.
Jeden zdroj pravdy
Push a pop sú operácie nad zoznamom _pages, nie vedľajšie efekty.
Vzor resolvera
Zostavujte podľa kľúča stránky a deklaratívne upravujte zoznam stránok.
Pravidlo stavu stránok
Príklad resolvera
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')]);
}
Udržujte metadáta úsporné
Vyhnite sa vkladaniu inštancií Widget do stavu navigácie a udržujte PageEntry ako čisté metadáta kvôli udržiavateľnosti.
Predchádzajúce
InštaláciaĎalej
Prekrytia