You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter go_router中push()与go()的差异及Web端URL更新+数据刷新的典型场景解决方案咨询

Flutter go_router中push()与go()的差异及Web端URL更新+数据刷新的典型场景解决方案咨询

大家好,我现在遇到一个典型的Flutter导航场景问题,想请教下正确的处理方式。

我写了一个简单的Demo来模拟日常开发里的常见流程:列表页从数据库加载数据,点击某条记录进入详情页修改内容,点击保存按钮后返回列表页,同时看到更新后的数据。

在测试两种导航方式时,我遇到了各自的问题:

  • 使用context.push()时:因为它会返回一个Future,我可以等待详情页执行context.pop()后,再调用getDataFromDataBase()重新拉取数据,数据刷新是正常的,但Web端的URL不会随之更新,这让我不确定是不是预期行为。
  • 使用context.go()时:Web端的URL能正常更新,但它返回的是void,我没办法在详情页pop()后触发列表页的数据刷新,不知道该怎么处理这种情况。

官方文档里似乎更推荐context.go()这类声明式导航(提到命令式导航可能引发一些问题),所以我有两个疑问想请教大家:

  1. context.push()不修改Web端URL是预期的设计行为吗?
  2. 如果采用推荐的context.go()导航,这种修改数据后返回刷新列表的场景,正确的处理方式是什么?怎么在context.pop()后触发列表页的数据更新?

感觉这应该是非常普遍的场景,肯定有我没考虑到的处理方式,希望大家能给我指条明路,谢谢!

备注:内容来源于stack exchange,提问作者rocotocloc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:59:32