پاڼې د معلوماتو په توګه، 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 وساتئ.