Pagina's als data, UI via resolver
Sla alleen metadata op in PageEntry. Gebruik buildPage om elke paginasleutel te koppelen aan een daadwerkelijke widget.
Serializeerbare state
PageEntry is gewone data, dus de navigatiestate kan worden gelogd, vergeleken en opnieuw worden afgespeeld.
Eenvoudige resolver
Een switch op page.key houdt routing expliciet en controleerbaar.
Eén bron van waarheid
Push en pop zijn lijstbewerkingen op _pages, geen bijwerkingen.
Resolver-patroon
Bouw op basis van paginasleutel en muteer de paginalijst declaratief.
Regel voor paginastate
Resolver-voorbeeld
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')]);
}
Houd metadata slank
Plaats geen Widget-instanties in de navigatiestate en houd PageEntry als pure metadata voor onderhoudbaarheid.
Vorige
InstallatieVolgende
Overlays