Anti-modèles
Les bugs apparaissent souvent lorsque les modèles impératif et déclaratif sont mélangés. Maintenez une séparation stricte de l'état.
Mélange de push/pop avec les pages
N'appelez pas Navigator.push/pop pour des piles déjà contrôlées par List<PageEntry>.
Widget dans l'état
N'insérez pas d'instances de Widget dans les métadonnées de page. Conservez uniquement des clés et des identifiants de type route.
Clés dupliquées
N'utilisez pas deux fois la même valeur de PageEntry.key dans la même pile.
Checklist de migration
Utilisez cette checklist pendant les revues de refactorisation pour conserver une architecture cohérente.
Checklist
Bon vs mauvais
// Mauvais : mélanger impératif et déclaratif pour la même pile
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Bon : mettre à jour uniquement l'état déclaratif
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Conseil de revue
Lors de la revue de code, identifiez qui est responsable des mutations de pile et rejetez les changements qui modifient la même pile via plusieurs API.
Précédent
Gestion du retourSuivant
Introduction