Խուսափելի հակաօրինակներ
Սխալների մեծ մասը առաջանում է, երբ imperative և declarative մոտեցումները խառնվում են։ Պահիր state-ի հստակ սահմանագիծ։
push/pop-ի խառնումը pages-ի հետ
Մի կանչիր Navigator.push/pop այն stack-երի համար, որոնք արդեն կառավարվում են List<PageEntry>-ով։
Widget-ը state-ում
Widget instance-ներ մի տեղադրիր page metadata-ի մեջ։ Պահիր միայն key-եր և route-ի նման նույնացուցիչներ։
Կրկնվող key-եր
Մի օգտագործիր նույն PageEntry.key արժեքը նույն stack-ի մեջ մեկից ավելի անգամ։
Միգրացիայի ստուգաթերթ
Refactor-ի վերանայումների ընթացքում օգտագործիր այս ստուգաթերթը, որպեսզի ճարտարապետությունը մնա հետևողական։
Ստուգաթերթ
Լավն ընդդեմ վատի
// Վատ. imperative և declarative խառը մոտեցում նույն stack-ի համար
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Լավ. թարմացրու միայն declarative state-ը
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Վերանայման հուշում
Code review-ի ընթացքում հետևիր՝ ով է տիրապետում stack-ի փոփոխություններին և մերժիր այն փոփոխությունները, որոնք նույն stack-ը փոխում են մի քանի API-ներով։
Նախորդը
Հետ գնալու կառավարումՀաջորդը
Ներածություն