Anti-modele de evitat

Cele mai multe erori apar atunci când sunt amestecate modelele imperative și declarative. Păstrați o separare strictă a stării.

Amestecarea push/pop cu paginile

Nu apelați Navigator.push/pop pentru stive deja controlate de List<PageEntry>.

Widget-uri în metadate

Nu puneți instanțe de Widget în metadatele paginii. Păstrați doar chei și identificatori de tip rută.

Chei duplicate

Nu reutilizați valori duplicate PageEntry.key în aceeași stivă.

Listă de verificare pentru migrare

Folosiți această listă de verificare în timpul revizuirilor de refactorizare pentru a păstra arhitectura consecventă.

Listă de verificare

Corect vs. greșit

// Greșit: amestecarea stilului imperativ și declarativ pentru aceeași stivă
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Corect: actualizați doar starea declarativă
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Sfat de revizuire

În timpul revizuirii codului, urmăriți cine deține mutațiile stivei și respingeți schimbările care modifică aceeași stivă prin mai multe API-uri.