在flutter中弹出屏幕后如何调用函数来更新值?

Pra*_*ing 4 mobile dart flutter flutter-layout

屏幕 1:显示带有添加按钮的项目列表 屏幕 2:将新项目添加到列表的表单。

屏幕 2 ? 屏幕 1 在屏幕 2 中调用 navigator.pop() 时,如何在屏幕 1 中调用 method/setstate(更新列表)?谁能帮我吗?

我不想再次重新启动屏幕。我只需要在弹出前一个屏幕后运行方法来更新我的列表?

Csa*_*kas 14

当您从屏幕 1 导航到屏幕 2 时,您将使用该push方法。该push方法返回一个Future对象。在从导航堆栈中弹出屏幕 2 后then,您可以使用 的方法Future来执行您的代码。

Navigator.of(context)
  .push(MaterialPageRoute(
     builder: (context) => Screen2(),
  ))
  .then((value) {
    // you can do what you need here
    // setState etc.
  });
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用ProviderBLoc,也可以在推送页面时等待结果