gpt4 book ai didi

Flutter-web Autoroute,尝试直接访问嵌套路由时出现问题

转载 作者:行者123 更新时间:2023-12-05 05:50:11 25 4
gpt4 key购买 nike

我有一个有 2 个屏幕的应用:

  • 商家列表:屏幕显示商家列表
  • 单一商户:带有标签的屏幕,每个标签应该显示一些小部件并且应该有自己的路线

路由配置如下:

AutoRoute(
path: '/merchants',
name: 'MerchantsRoute',
page: EmptyRouterPage,
guards: [AuthGuard],
children: [
AutoRoute(path: '', page: MerchantsView, guards: [AuthGuard], initial: true),
AutoRoute(
path: ':id',
page: SingleMerchantView,
guards: [AuthGuard],
children: [
AutoRoute(path: 'dashboard', page: Dashboard, guards: [AuthGuard], name: 'MerchantDashboardRoute'),
AutoRoute(path: 'purchases', page: PurchasesList, guards: [AuthGuard], name: 'MerchantPurchasesRoute'),
AutoRoute(path: 'profile', page: PurchasesList, guards: [AuthGuard], name: 'MerchantProfileRoute'),
]
),

]
),

SinglMerchantView 是包含 AutoTabsScaffoldTabBarView

的小部件

使用 flutter web,当我直接访问(通过在 chrome 中直接输入 url)时:

  • /merchants ==> 有效
  • /merchants/some_merchant_id ==> 它起作用了,正确显示了 SingleMerchantView 并选择了第一个选项卡并构建了Dashboard
  • /merchants/some_merchant_id/dashboard ==> 它没有像预期的那样工作。我希望首先创建 SingleMerchantView,然后它应该创建 Dashboard 小部件我看到的是,它试图直接创建小部件 Dashboard,而不创建小部件 SingleMerchantView。由于仪表板小部件需要一个强制性的 id 属性(通常由父 SingleMerchantView 注入(inject)),因此页面失败

知道如何解决这个问题吗?

最佳答案

我的理解是每个雀巢都需要一个 EmptyRouterPage。类似这样的东西:

AutoRoute(
path: '/merchants',
name: 'MerchantsRoute',
page: EmptyRouterPage,
guards: [AuthGuard],
children: [
AutoRoute(path: '', page: MerchantsView, guards: [AuthGuard], initial: true),
AutoRoute(
name: 'SingleMerchantRouter',
path: ':id',
page: EmptyRouterPage,
guards: [AuthGuard],
children: [
AutoRoute(path: '', page: SingleMerchantView, guards: [AuthGuard]),
AutoRoute(path: 'dashboard', page: Dashboard, guards: [AuthGuard], name: 'MerchantDashboardRoute'),
AutoRoute(path: 'purchases', page: PurchasesList, guards: [AuthGuard], name: 'MerchantPurchasesRoute'),
AutoRoute(path: 'profile', page: PurchasesList, guards: [AuthGuard], name: 'MerchantProfileRoute'),
]
),

]
),

我无法测试,但这与我今天遇到的问题类似。

关于Flutter-web Autoroute,尝试直接访问嵌套路由时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70549122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com