ຮູບແບບທີ່ຄວນຫຼີກລ້ຽງ

ບັກສ່ວນໃຫຍ່ເກີດເມື່ອແບບຈໍາລອງ imperative ແລະ declarative ຖືກປະສົມກັນ. ຮັກສາເຂດ state ໃຫ້ແຈ້ງຊັດ.

ປະສົມ push/pop ກັບ pages

ຢ່າເອີ້ນ `Navigator.push`/`pop` ສໍາລັບ stack ທີ່ `List<PageEntry>` ຄວບຄຸມຢູ່ແລ້ວ.

Widget ໃນ state

ຢ່າໃສ່ instance ຂອງ `Widget` ໃນ metadata ຂອງ page. ເກັບພຽງ keys ແລະຕົວລະບຸທີ່ຄ້າຍ route ເທົ່ານັ້ນ.

ຄີທີ່ຊ້ຳຊ້ອນ

ຢ່ານໍາໃຊ້ຄ່າ `PageEntry.key` ທີ່ຊ້ຳກັນໃນ stack ດຽວກັນ.

ລາຍການກວດສອບການຍ້າຍ

ໃຊ້ checklist ນີ້ໃນລະຫວ່າງການທົບທວນ 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 ຫຼາຍຕົວ.

ກ່ອນໜ້າ

ໂອເວີເລ

ຕໍ່ໄປ

ບົດນໍາ