Síður sem gögn, UI í gegnum resolver

Geymdu aðeins lýsigögn í PageEntry. Notaðu buildPage til að varpa hverjum síðulykli yfir í raunverulegt widget.

Raðkvæmanleg staða

PageEntry er venjuleg gögn, þannig að hægt er að skrá, bera saman og endurspila leiðsagnarstöðu.

Einfaldur resolver

switch á page.key heldur leiðavali skýru og yfirferðarhæfu.

Einn sannleiksgjafi

Push og pop eru listaaðgerðir á _pages, ekki hliðaráhrif.

Resolver-mynstur

Byggðu eftir síðulykli og breyttu síðulistanum yfirlýsandi.

Regla um síðustöðu

Resolver-dæmi

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')]);
}
Haltu lýsigögnum léttum

Forðastu að setja Widget-tilvik í leiðsagnarstöðu og haltu PageEntry sem hreinum lýsigögnum til að viðhald verði auðveldara.