Corak yang perlu dielakkan.

Kebanyakan masalah berlaku apabila model imperatif dan model deklaratif dicampuradukkan. Pastikan sempadan keadaan (state) yang jelas dan tegas.

Menggabungkan fungsi "push" dan "pop" dengan halaman.

Jangan gunakan fungsi Navigator.push/pop untuk mengawal tumpukan yang sudah dikawal oleh List<PageEntry>.

Widget dalam keadaan tertentu.

Jangan masukkan contoh widget ke dalam metadata halaman. Hanya sertakan kunci dan pengenal yang menyerupai laluan.

Kunci tanpa had.

Jangan gunakan semula nilai "key" yang sama dalam objek "PageEntry" di dalam tumpukan yang sama.

Senarai Semak Pemindahan.

Gunakan senarai semak ini semasa proses semakan penambahbaikan kod untuk memastikan konsistensi dalam reka bentuk sistem.

Senarai semak.

Baik vs. Buruk.

// Buruk: Menggabungkan arahan dan pernyataan untuk stack yang sama
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Baik: Hanya mengemas kini keadaan deklaratif
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Petua Semakan.

Semasa proses semakan kod, perhatikan: Siapakah yang memiliki mutasi dalam susunan data? dan menolak perubahan yang mengubah susunan data yang sama melalui pelbagai API.