Anti-pola yang Harus Dihindari

Sebagian besar bug muncul saat model imperatif dan deklaratif dicampur. Pertahankan batas state yang ketat.

Mencampur push/pop dengan halaman

Jangan panggil Navigator.push/pop untuk stack yang sudah dikendalikan oleh List<PageEntry>.

Widget dalam state

Jangan menaruh instance Widget ke metadata halaman. Simpan hanya key dan pengenal mirip rute.

Key tak terbatas

Jangan menggunakan ulang nilai PageEntry.key yang duplikat dalam stack yang sama.

Daftar Periksa Migrasi

Gunakan daftar periksa ini saat meninjau refactor untuk menjaga arsitektur tetap konsisten.

Daftar periksa

Baik vs Buruk

// Buruk: mencampur pendekatan imperatif dan deklaratif untuk stack yang sama
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Baik: perbarui hanya state deklaratif
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Tips Review

Saat review kode, lacak siapa yang memiliki mutasi stack dan tolak perubahan yang memodifikasi stack yang sama melalui beberapa API.

Berikutnya

Pengantar