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.