Страници како податоци, UI преку резолвер

Чувајте само метаподатоци во PageEntry. Користете buildPage за да го мапирате секој клуч на страница на вистински widget.

Серијализирачка состојба

PageEntry е обичен податок, па состојбата на навигацијата може да се запише, спореди и повтори.

Едноставен резолвер

Switch на page.key го прави рутирањето експлицитно и прегледливо.

Еден извор на вистина

Push и pop се операции на листата _pages, не нуспојави.

Шема на резолвер

Градете според клучот на страницата и менувајте ја листата на страници декларативно.

Command

Пример за резолвер

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')]);
}
Чувајте ги метаподатоците лесни

Избегнувајте да ставате Widget инстанци во состојбата на навигација и држете го PageEntry како чисти метаподатоци за полесно одржување.

Претходно

Инсталација