Mønstre, man bør undgå.

De fleste fejl opstår, når imperative og deklarative modeller blandes. Oprethold en klar grænse for tilstanden.

Kombination af "push"/pop-funktioner med sider.

Brug ikke metoderne Navigator.push eller Navigator.pop for stakke, der allerede administreres af en List<PageEntry>.

Widget i tilstand.

Placer ikke instanser af widgets i sidens metadata. Behold kun nøgleord og identifikatorer, der ligner ruteinformation.

Ubegrænsede nøgler.

Genbrug ikke identiske værdier for `PageEntry.key` inden for den samme stak.

Tjekliste for flytning.

Brug denne tjekliste under kodeomskrivningsprocessen for at sikre en ensartet arkitektur.

Tjekliste.

Godt versus dårligt.

// Dårligt: Blanding af kommandoer og beskrivende kode for samme "stack"
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Godt: Opdater kun den beskrivende tilstand
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Anmeldelsestip.

Under kode gennemgang, følg med i... Hvem ejer stack-mutationerne? og afvis ændringer, der modificerer den samme datastruktur via flere API'er.