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.