Približki, ki jih je treba izogibati.

Večina napak se pojavi, ko se mešajo imperativni in deklarativni modeli. Ohranite jasno ločnico med stanjem.

Mešanje funkcij "push" in "pop" z navigacijo po straneh.

Ne uporabljajte metod `Navigator.push` ali `Navigator.pop` za steke, ki jih že upravlja razred `List<PageEntry>`.

Komponente v stanju.

Ne vključujte instanc widgetov v metapodatke strani. Ohranite samo ključe in identifikatorje, podobne potem.

Neomejeni ključi.

Ne uporabljajte večkrat iste vrednosti ključa (key) v enaki strukturi podatkov (stack).

Kontrolna lista za migracijo.

Uporabite to kontrolno listo med pregledi prestrukturiranja kode, da zagotovite doslednost arhitekture.

Kontrolna lista.

Dobro proti slabemu.

// Slaba praksa: mešanje ukaznih in opisnih elementov za isto skladno listo.
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Dobra praksa: posodobitev samo opisnega stanja.
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Nasvet za ocenjevanje.

Med pregledom kode, spremljajte: kdo je lastnik mutacij v skladu? in zavračajte spremembe, ki spreminjajo isto strukturo podatkov preko več različnih vmesnikov.