Анти-патерни што треба да се избегнуваат

Повеќето грешки се јавуваат кога се мешаат императивниот и декларативниот модел. Одржувајте строга граница на состојбата.

Мешање на 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-ја.

Претходно

Оверлеи

Следно

Вовед