Mifumo ya Kuepuka
Hitilafu nyingi hutokea wakati mifumo ya imperative na declarative inachanganywa. Weka mpaka mkali wa state.
Kuchanganya push/pop na pages
Usiite Navigator.push/pop kwa stack ambazo tayari zinadhibitiwa na List<PageEntry>.
Widget ndani ya state
Usiweke instances za Widget ndani ya metadata ya page. Hifadhi keys na route-like identifiers pekee.
Keys zinazorudiwa
Usitumie tena thamani ya PageEntry.key iliyorudiwa ndani ya stack ile ile.
Orodha ya ukaguzi ya Uhamishaji
Tumia orodha hii ya ukaguzi wakati wa review ya refactor ili usanifu ubaki thabiti.
Orodha ya ukaguzi
Nzuri dhidi ya Mbaya
// Mbaya: kuchanganya imperative na declarative kwa stack ile ile
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Nzuri: sasisha state ya declarative pekee
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Dokezo la Review
Wakati wa code review, fuatilia nani anamiliki mabadiliko ya stack na kataa mabadiliko yanayobadilisha stack ile ile kupitia API nyingi.
Iliyotangulia
Ushughulikiaji wa KurudiIfuatayo
Utangulizi