Pet*_*ing 16 dart flutter flutter-go-router
使用GoRouter,有没有办法用不同的参数推送完全相同的路由并使页面重新加载?我正在考虑类似 Navigator.pushReplacement 的东西
我正在使用 context.go('/my_page/?param={someID}') 推送到 MyPage (一个有状态的小部件)
对该路由的初始推送工作正常,我加载了特定 ID 的页面
我尝试使用 context.go('/my_page/?param={ differentID}') 再次推送相同的路线(替换路线并使用不同的 ID 重新加载)。我的断点击中了 GoRoute pageBuilder 中的 return 语句,并且我还在 MyPage.build 中击中了断点。在构建中设置断点时,我看到传递到此小部件的新 ID。
但是页面不会在视觉上重建(或者在 initState 中中断 - 旁注,初始化状态用于使用传入的 ID 加载几肘 - 页面作为有状态小部件可能是问题吗?)
材料页面上的维护状态为 false。此外,推动不同的路线效果也很好。
这是一个有状态小部件问题(意味着重新定位我所有的 cubit init 调用)吗?还是有不同的方式来推动同一条路线?
编辑 _____________
这个问题特定于重建相同的路线,但我正在解决的更大问题是一遍又一遍地无限钻取同一页面,同时维护导航堆栈。
我使用状态管理器来保存路线列表,并通过使用 context.go() 来完全替换当前路线来触发导航。
有没有办法在维护整个导航堆栈的同时使用 context.push() 动态嵌套路由?
Pab*_*sua 16
After some research, I have noticed that you can redirect to the same page by using pageKey: UniqueKey() in the definition of the GoRoute().
Example code from my project:
GoRoute(
path: RoutePaths.serviceDetail.value,
name: RouteNames.serviceDetail.value,
pageBuilder: (context, state) {
return CustomTransitionPage<void>(
key: UniqueKey(),
child: const ServiceDetailPage(),
transitionsBuilder: (context, animation, secondaryAnimation, child) =>
PageTransitions.subpageTransition(animation, child),
);
},
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10564 次 |
| 最近记录: |