Sider som data, UI via resolver
Gem kun metadata i PageEntry. Brug buildPage til at mappe hver side-key til en faktisk widget.
Serialiserbar state
PageEntry er rene data, så navigationstilstanden kan logges, diffes og afspilles igen.
Enkel resolver
Et switch på page.key holder routing eksplicit og let at reviewe.
Én kilde til sandheden
Push og pop er listeoperationer på _pages, ikke sideeffekter.
Resolver-mønster
Byg efter side-key og mutér sidelisten deklarativt.
Regel for side-state
Resolver-eksempel
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')]);
}
Hold metadata lette
Undgå at placere Widget-instanser i navigationstilstanden og hold PageEntry som ren metadata for bedre vedligeholdelse.
Forrige
InstallationNæste
Overlays