Антипаттернҳои пешгиришаванда
Аксари хатоҳо вақте рух медиҳанд, ки моделҳои амрӣ ва декларативӣ омехта мешаванд. Марзи қатъии ҳолатро нигоҳ доред.
Омехтани push/pop бо саҳифаҳо
Барои stack-ҳое, ки аллакай аз ҷониби List<PageEntry> идора мешаванд, Navigator.push/pop-ро истифода набаред.
Widget дар ҳолат
Экземплярҳои Widget-ро ба метамаълумоти саҳифа нагузоред. Танҳо keys ва идентификаторҳои ба route монандро нигоҳ доред.
Калидҳои такрорӣ
Арзишҳои такрории PageEntry.key-ро дар як stack дубора истифода набаред.
Рӯйхати санҷиши муҳоҷират
Барои яксон нигоҳ доштани меъморӣ, ҳангоми баррасии рефакторинг ин рӯйхати санҷишро истифода баред.
Рӯйхати санҷиш
Хуб / бад
// Бад: омехтани усули амрӣ ва декларативӣ барои ҳамон stack
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Хуб: танҳо ҳолати декларативиро навсозӣ кунед
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Маслиҳати баррасӣ
Ҳангоми баррасии код, пайгирӣ кунед ки барои тағйироти stack масъул аст ва тағйироте, ки ҳамон stack-ро тавассути чанд API тағйир медиҳанд, рад кунед.
Қаблӣ
Идоракунии баргаштБаъдӣ
Муқаддима