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