【发布时间】:2022-11-08 21:49:13
【问题描述】:
我有一个关于 Flutter 在使用 go_router 导航时如何进行数据/状态管理的概念性问题。我的应用程序有一个主页,其中包含一个显示数据库事件列表的日历(使用 riverpod 包来监听 API 调用)。我还有一个单独的事件页面,显示给定 ID 的事件数据。到事件的路由是主路由的子路由(参见下面的路由定义)。
我想让用户通过移动设备上的通知或页面的 URL(例如host/event/SomeEventID)立即导航到此事件页面。但是,为了最大限度地减少 API 调用,我想知道这种类型的导航是否以任何可能触发 API 调用以获取所有事件的方式调用 HomePage 构建器,如果是,如何防止这种情况发生。
当前路线定义:
List<GoRoute> routes => <GoRoute>[
GoRoute(
name: 'home',
path: '/',
builder: (_, __) => const HomePage(),
routes: <GoRoute>[
GoRoute(
name: 'event',
path: 'event/:id',
builder: (context, state) {
// TODO: Fetch data
// NOTE: Navigate to home if the id does not match an event
// final String id = state.params['id']!;
},
),
],
),
];
【问题讨论】: