Kaçınılması gereken anti-patternler

Çoğu hata, imperatif ve bildirime dayalı modeller karıştırıldığında ortaya çıkar. Durum sınırını sıkı tutun.

Push/pop ile sayfaları karıştırmak

List<PageEntry> tarafından zaten kontrol edilen stack'ler için Navigator.push/pop çağırmayın.

Widget'i durumda tutmak

Page metadata içine Widget örnekleri koymayın. Yalnızca anahtarları ve rota benzeri tanımlayıcıları saklayın.

Yinelenen anahtarlar

Aynı stack içinde yinelenen PageEntry.key değerlerini yeniden kullanmayın.

Geçiş Kontrol Listesi

Mimariyi tutarlı tutmak için bu kontrol listesini yeniden düzenleme incelemelerinde kullanın.

Kontrol listesi

İyi ve kötü

// Kötü: aynı stack için imperatif ve bildirime dayalı yaklaşımı karıştırmak
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// İyi: yalnızca bildirime dayalı durumu güncelleyin
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
İnceleme ipucu

Kod incelemesi sırasında, stack değişikliklerinden kimin sorumlu olduğunu aynı stack'i birden fazla API üzerinden değiştiren değişiklikleri reddedin.