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.