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.

Edellinen

Overlayt

Seuraava

Johdanto