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.
Sebelumnya
Penanganan KembaliBerikutnya
Pengantar