Pagini ca date, UI prin resolver

Stochează doar metadate în PageEntry. Folosește buildPage pentru a mapa fiecare cheie de pagină la un widget real.

Stare serializabilă

PageEntry este doar date, deci starea de navigare poate fi logată, comparată și redată.

Resolver simplu

Un switch pe page.key menține rutarea explicită și ușor de revizuit.

O singură sursă a adevărului

Push și pop sunt operații pe lista _pages, nu efecte secundare.

Model de resolver

Construiește după cheia paginii și modifică lista de pagini declarativ.

Comandă

Exemplu de 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')]);
}
Păstrează metadatele ușoare

Evită să plasezi instanțe Widget în starea de navigare și păstrează PageEntry ca metadate pure pentru mentenabilitate.

Anterior

Instalare

Următor

Resolvere