Te vermijden anti-patronen
De meeste bugs ontstaan wanneer imperatieve en declaratieve modellen door elkaar worden gehaald. Houd een strikte grens voor state aan.
push/pop mengen met pagina's
Roep Navigator.push/pop niet aan voor stacks die al door List<PageEntry> worden beheerd.
Widget in de state
Zet geen Widget-instanties in paginametadata. Houd alleen keys en route-achtige identifiers aan.
Onbegrensde keys
Hergebruik geen dubbele PageEntry.key-waarden in dezelfde stack.
Migratiechecklist
Gebruik deze checklist tijdens refactor-reviews om de architectuur consistent te houden.
Checklist
Goed vs. slecht
// Slecht: imperatieve en declaratieve aansturing voor dezelfde stack mengen
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Goed: werk alleen de declaratieve state bij
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Reviewtip
Volg tijdens code review wie de stack-mutaties beheert en wijs wijzigingen af die dezelfde stack via meerdere API's muteren.
Vorige
OverlaysVolgende
Introductie