Mga anti-pattern na dapat iwasan
Karamihan sa mga bug ay lumilitaw kapag pinaghahalo ang imperative at declarative na mga modelo. Panatilihin ang mahigpit na hangganan ng estado.
Paghahalo ng push/pop sa mga page
Huwag tawagin ang Navigator.push/pop para sa mga stack na kontrolado na ng List<PageEntry>.
Widget sa estado
Huwag ilagay ang mga instance ng Widget sa metadata ng page. Panatilihin lamang ang mga key at mga identifier na kahawig ng ruta.
Mga duplicate na key
Huwag muling gamitin ang magkakaparehong halaga ng PageEntry.key sa iisang stack.
Checklist ng migrasyon
Gamitin ang checklist na ito sa mga review ng refactor upang manatiling pare-pareho ang arkitektura.
Checklist
Mabuti vs Masama
// Masama: pinaghahalo ang imperative at declarative para sa parehong stack
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Mabuti: i-update lang ang declarative na estado
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Tip sa review
Sa code review, bantayan kung sino ang responsable sa mga pagbabago sa stack at tanggihan ang mga pagbabagong nagbabago sa parehong stack sa pamamagitan ng maraming API.
Nakaraan
Pangangasiwa sa pagbalikSusunod
Panimula