小编Pet*_*ing的帖子

Go Router (Flutter) - 推送完全相同的路由并刷新该路由

使用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() 动态嵌套路由?

dart flutter flutter-go-router

16
推荐指数
1
解决办法
1万
查看次数

标签 统计

dart ×1

flutter ×1

flutter-go-router ×1