有没有办法弹出几个页面并重新加载目标页面?
Posted
技术标签:
【中文标题】有没有办法弹出几个页面并重新加载目标页面?【英文标题】:Is there any way to pop several pages and reload the destination page? 【发布时间】:2019-10-16 10:06:17 【问题描述】:我正在设置一个应用程序,该应用程序必须填写一个由 4 部分组成的长表单,该表单可能在移动应用程序的 4 个连续屏幕中显示。现在在表单的第 4 部分,有一个提交按钮。用户点击提交,所有之前的屏幕都应该弹出,用户应该回到项目列表屏幕(第一个屏幕),必须显示更新的数据项。我们不会在这里推出任何新东西,只是回到以前的路线。但是应该重新加载第一页。这怎么可能?
【问题讨论】:
你试过 pop.until 吗? pop.until 正在工作,但指定页面(即 !st 页面数据未重新加载。有什么想法吗? 是的,当您弹出以前的页面时,它会重新加载它只是从导航器堆栈中弹出最后一个导航页面 我需要在弹出到目标页面时调用一个函数以从服务器重新加载 检查我的答案 【参考方案1】:// 更新答案 因此,如果这是您要推送的第一个屏幕,并且您想在弹出时调用函数,那么您可以这样做。
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => RegisterScreen()))
.then((success)
if(success)
// call your function here
);
【讨论】:
如果我转到第二页然后按下返回按钮,第一页就会出现,它会不必要地重新加载。我也需要避免这种情况。仅当按下第 4 页中的提交按钮时,第一个屏幕才应重新加载。并且该按应该弹出所有页面以到达第一页 为此,您需要使用 bloc 或 provider 管理状态。作为一种解决方法,您可以将 bool 从 4 传递到 3,然后将 3 传递到 2,然后再将 2 传递到 1。如果它是真的,您可以继续。以上是关于有没有办法弹出几个页面并重新加载目标页面?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Ionic 框架在登录/注销时清除历史记录并重新加载页面