有没有办法弹出几个页面并重新加载目标页面?

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。如果它是真的,您可以继续。

以上是关于有没有办法弹出几个页面并重新加载目标页面?的主要内容,如果未能解决你的问题,请参考以下文章

使用spring MVC重新加载弹出页面

使用 Ionic 框架在登录/注销时清除历史记录并重新加载页面

Django 表单提交无需重新加载页面

flutter-保持页面状态(切换页面,页面还在原来的位置,不重新加载接口)

Flutter Page 每次在导航弹出时都会重新加载

重定向并重新加载,即使是同一页面