Antimodelli da evitare
La maggior parte dei bug si verifica quando si mescolano i modelli imperativo e dichiarativo. Mantieni un confine rigoroso dello stato.
Mescolare push/pop con le pagine
Non chiamare `Navigator.push`/`pop` per stack già gestiti da `List<PageEntry>`.
Widget nello stato
Non inserire istanze `Widget` nei metadati della pagina. Conserva solo chiavi e identificatori simili a route.
Chiavi senza limite
Non riutilizzare valori duplicati di `PageEntry.key` nello stesso stack.
Checklist di migrazione
Usa questa checklist durante le revisioni di refactoring per mantenere coerente l'architettura.
Checklist
Giusto vs sbagliato
// Sbagliato: mescolare approccio imperativo e dichiarativo per lo stesso stack
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Giusto: aggiorna solo lo stato dichiarativo
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Suggerimento per la revisione
Durante la revisione del codice, traccia chi possiede le modifiche dello stack e rifiuta le modifiche che alterano lo stesso stack tramite più API.
Precedente
SovrapposizioniSuccessivo
Introduzione