Antipatrones a evitar
La mayoría de los errores ocurre cuando se mezclan los modelos imperativo y declarativo. Mantenga un límite estricto del estado.
Mezclar push/pop con páginas
No llame a `Navigator.push`/`pop` en pilas que ya controla `List<PageEntry>`.
Widget en el estado
No coloque instancias de `Widget` en los metadatos de la página. Conserve solo claves e identificadores similares a rutas.
Claves duplicadas
No reutilice valores duplicados de `PageEntry.key` en la misma pila.
Lista de verificación de migración
Use esta lista de verificación durante las revisiones de refactorización para mantener la arquitectura consistente.
Lista de verificación
Bueno vs. malo
// Mal: mezclar lo imperativo y lo declarativo para la misma pila
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// Bien: actualice solo el estado declarativo
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Consejo de revisión
Durante la revisión de código, vigile quién es responsable de las mutaciones de la pila y rechace los cambios que modifiquen la misma pila a través de varias API.
Anterior
Gestión del retrocesoSiguiente
Introducción