Antimonster att undvika
De flesta buggar uppstar nar imperativa och deklarativa modeller blandas. Hall en strikt grans for tillstandet.
Blanda push/pop med pages
Anropa inte Navigator.push/pop for stackar som redan styrs av List<PageEntry>.
Widget i tillstandet
Lagg inte Widget-instanser i sidmetadata. Behall bara nycklar och ruttliknande identifierare.
Obegransade nycklar
Ateranvand inte duplicerade PageEntry.key-varden i samma stack.
Migreringschecklista
Anvand den har checklistan under refaktoriseringsgranskningar for att halla arkitekturen konsekvent.
Checklista
Bra vs daligt
// Daligt: blandar imperativ och deklarativ styrning for samma stack
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Bra: uppdatera bara det deklarativa tillstandet
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Granskningstips
Under kodgranskning, hall koll pa vem som ager stackmutationer och avvisa andringar som muterar samma stack via flera API:er.
Foregaende
Back-hanteringNasta
Introduktion