Qayd etilmagan, noto'g'ri yechimlar yoki yomon amaliyotlar.

Ko'pincha, xatoliklar imperativ va deklarativ modellar birga ishlatilganda yuzaga chiqadi. Holatni aniq chegaralashga e'tibor bering.

"Push/pop" funksiyasi bilan sahifalarni birlashtirish.

`Navigator.push/pop` funksiyalarini `List<PageEntry>` tomonidan allaqachon boshqarilayotgan stacklar uchun ishlatmang.

Widgetning holati.

Widget modellarini sahifa metadataiga qo'shmang. Faqat kalit so'zlarni va marshrutga o'xshash identifikatorlarni saqlang.

Cheklovsiz kalitlar.

Bir xil "stack" ichida bir xil "PageEntry.key" qiymatini qayta-qayta ishlatmang.

Ko'chish bo'yicha tekshirish ro'yxati.

Bu tekshirish ro'yxatini dastur kodi qayta tuzilishi jarayonida arxitektura bir xilligini ta'minlash uchun ishlating.

Ro'yxat.

Yaxshi va yomon.

// Yaxshi emas: bir xil stack uchun buyruq va deklarativ usullarni birlashtirish
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// To'g'ri: faqat deklarativ holatni yangilang
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Izoh yozish bo'yicha maslahat.

Kodni tekshirish jarayonida, quyidagilarni kuzating: "Stack mutations" deb ataladigan o'zgarishlarni kim egallaydi? va bir nechta API orqali bir xil ma'lumotlar to'plamiga o'zgartirishlar kiritadigan so'rovlarni rad eting.