پاڼې د معلوماتو په توګه، UI د resolver له لارې

په PageEntry کې یوازې metadata وساتئ. د هر page key د حقیقي widget سره د نښلولو لپاره buildPage وکاروئ.

serializable state

PageEntry ساده data ده، نو navigation state لوګ، diff او replay کېدلی شي.

ساده resolver

په page.key باندې switch routing روښانه او د review وړ ساتي.

د حقیقت یوازینۍ سرچینه

Push او pop د _pages د لېست عملیات دي، side effects نه دي.

Resolver pattern

د page key له مخې build وکړئ او د page list declaratively بدله کړئ.

Command

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')]);
}
Metadata سپک وساتئ

له اېښودلو ډډه وکړئ Widget instanceونه navigation state ته او د maintainability لپاره PageEntry خالص metadata وساتئ.

مخکنی

نصب

راتلونکی

Resolver