Páginas y resolvedor
Guarda solo metadatos en PageEntry. Usa buildPage para mapear cada clave de página a un widget real.
Estado serializable
PageEntry son datos puros, así que el estado de navegación se puede registrar, comparar y reproducir.
Resolutor simple
Un switch sobre page.key mantiene el enrutado explícito y revisable.
Una sola fuente de verdad
Push y pop son operaciones de lista sobre _pages, no efectos secundarios.
Patrón del resolver
Construye por clave de página y muta la lista de páginas de forma declarativa.
Regla del estado de la página
Ejemplo del resolver
Widget _buildPage(BuildContext context, PageEntry page) {
switch (page.key) {
case 'home':
return HomePage(onGoDetail: _goDetail);
case 'detail':
return const DetailPage();
default:
return const SizedBox.shrink();
}
}
void _goDetail() {
setState(() => _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')]);
}
Mantén ligeros los metadatos
Evita colocar instancias de Widget en el estado de navegación y conserva PageEntry como metadatos puros para facilitar el mantenimiento.
Previous
InstallationNext
Overlays