【问题标题】: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 页面数据未重新加载。有什么想法吗?
  • 是的,当您弹出以前的页面时,它会重新加载它只是从导航器堆栈中弹出最后一个导航页面
  • 我需要在弹出到目标页面时调用一个函数以从服务器重新加载
  • 检查我的答案

标签: flutter


【解决方案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。如果它是真的,您可以继续。
猜你喜欢
  • 2021-12-25
  • 2011-06-26
  • 2019-09-13
  • 1970-01-01
  • 2013-07-17
  • 2012-08-10
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
相关资源
最近更新 更多