Anti-obrasci koje treba izbegavati

Većina bagova nastaje kada se pomešaju imperativni i deklarativni modeli. Održavajte strogu granicu stanja.

Mešanje push/pop sa stranicama

Ne pozivajte Navigator.push/pop za stekove kojima već upravlja List<PageEntry>.

Widget u stanju

Ne stavljajte Widget instance u metapodatke stranice. Zadržite samo ključeve i identifikatore nalik rutama.

Neograničeni ključevi

Ne koristite ponovo duplirane PageEntry.key vrednosti u istom steku.

Kontrolna lista migracije

Koristite ovu kontrolnu listu tokom pregleda refaktorisanja da biste arhitekturu održali doslednom.

Kontrolna lista

Dobro vs. loše

// Loše: mešanje imperativnog i deklarativnog pristupa za isti stek
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Dobro: ažurirajte samo deklarativno stanje
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Savet za pregled

Tokom pregleda koda pratite ko je odgovoran za izmene steka i odbacite izmene koje menjaju isti stek kroz više API-ja.

Prethodno

Overlay-i

Sledeće

Uvod