Негатыўныя шаблоны, якіх варта пазбегнуць.
Большасць праблем узнікае, калі змешваюцца імперытыўныя і дэкларатыўныя мадэлі. Заўсёды захоўвайце строгую мяжу стану.
Паслядоўнае выкарыстанне метадаў "push" і "pop" у спалучэнні са старонкамі.
Не выклікайце метады Navigator.push і Navigator.pop для стосаў, якія ўжо кіруюцца класам List<PageEntry>.
Віджэт у стане.
Не ўключайце экземпляры віджэтаў у метададзеныя старонкі. Пакідайце толькі ключы і ідэнтыфікатары, падобныя на маршруты.
Неабмежаваныя ключы.
Не выкарыстоўвайце аднолькавыя значэнні для атрыбута "key" у розных элементах "PageEntry" у адным і тым жа стэку.
Чек-ліст для міграцыі.
Выкарыстоўвайце гэты спіс праверкі падчас прагляду перапрацоўкі кода, каб захаваць аднастайнасць архітэктуры.
Спіс праверкі.
Добра супраць зла.
// Няправільна: змяшэнне імпэратыўнай і дэкларатыўнай канструкцый для адной і той жа структуры даных
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Правільна: абнаўленне толькі дэкларатыўнага стану
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Парада для аглядаў.
Падчас прагляду кода, адсочвайце... хто валодае мутацыямі ў структуры даных? і адхіляць змены, якія змяняюць адну і тую ж структуру даных праз розныя інтэрфейсы праграмавання.
Папярэдняе.
Апрацоўка зваротаў.Далей.
Уводзіны.