Анти-патерни што треба да се избегнуваат
Повеќето грешки се јавуваат кога се мешаат императивниот и декларативниот модел. Одржувајте строга граница на состојбата.
Мешање на push/pop со страници
Не повикувајте `Navigator.push`/`pop` за стекови што веќе ги контролира `List<PageEntry>`.
Widget во состојба
Не ставајте `Widget` инстанци во метаподатоците на страницата. Чувајте само клучеви и идентификатори слични на рути.
Дуплирани клучеви
Не користете повторно дуплирани вредности `PageEntry.key` во истиот стек.
Контролна листа за миграција
Користете ја оваа контролна листа при прегледи на рефакторирање за архитектурата да остане конзистентна.
Контролна листа
Добро наспроти лошо
// Лошо: мешање на императивен и декларативен пристап за истиот стек
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Добро: ажурирајте само декларативна состојба
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Совет за преглед
За време на code review, следете кој ги поседува промените на стекот и одбивајте измени што го менуваат истиот стек преку повеќе API-ја.