Välditavad mustrid

Enamik vigu tekib siis, kui imperatiivsed ja deklaratiivsed mudelid segatakse. Hoia oleku piir rangelt paigas.

push/pop'i segamine lehtedega

Ära kasuta Navigator.push/pop'i nende stack'ide puhul, mida List<PageEntry> juba juhib.

Widget state'is

Ära pane Widgeti eksemplare lehe metaandmetesse. Hoia alles ainult võtmed ja marsruudilaadsed identifikaatorid.

Korduvad võtmed

Ära kasuta sama PageEntry.key väärtust samas stack'is mitu korda.

Ülemineku kontrollnimekiri

Kasuta seda kontrollnimekirja refaktoreerimise ülevaatuste ajal, et arhitektuur püsiks järjepidev.

Kontrollnimekiri

Hea vs halb

// Halb: imperatiivse ja deklaratiivse lähenemise segamine sama stack'i jaoks
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Hea: uuenda ainult deklaratiivset olekut
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Ülevaatuse nõuanne

Koodiarvustuse ajal jälgi kes vastutab stack'i muudatuste eest ja lükka tagasi muudatused, mis muudavad sama stack'i mitme API kaudu.