Vältettävät mallit
Suurin osa virheistä syntyy, kun imperatiivinen ja deklaratiivinen malli sekoitetaan. Pidä tila tiukasti rajattuna.
push/pop ja sivut sekaisin
Älä kutsu `Navigator.push`/`pop`-metodeja pinoille, joita `List<PageEntry>` jo hallitsee.
Widget tilassa
Älä sijoita `Widget`-instansseja sivun metatietoihin. Säilytä vain avaimet ja reittimäiset tunnisteet.
Toistuvat avaimet
Älä käytä samoja `PageEntry.key`-arvoja uudelleen samassa pinossa.
Muutostarkistuslista
Käytä tätä tarkistuslistaa refaktorointikatselmoinneissa, jotta arkkitehtuuri pysyy yhdenmukaisena.
Tarkistuslista
Hyvä vs. huono
// Huono: imperatiivisen ja deklaratiivisen tavan sekoittaminen samalle pinolle
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Hyvä: päivitä vain deklaratiivista tilaa
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Katselmointivinkki
Koodikatselmoinnissa seuraa kuka vastaa pinon muutoksista ja hylkää muutokset, jotka muokkaavat samaa pinoa usean API:n kautta.