使用pop时如何在flutter中重新加载或调用某些函数initState()

Sha*_*med 6 flutter flutter-navigation

当用户单击返回或我Navigator.pop()在第二个屏幕中使用时,我试图运行某种方法。

我有两个屏幕。

  1. 设定画面
  2. 编辑画面

编辑后,我将用户弹出到第一秒。现在在第一个屏幕中我使用SharedPreference. 但是当用户回到第一个屏幕时,我需要重新运行一个方法。我怎样才能做到这一点?

Cop*_*oad 8

EditSettings屏幕导航到屏幕时,使用它(在Settings屏幕内)

Navigator.pushNamed(context, "/editScreen").then((_) {
  // you have come back to your Settings screen 
  yourSharedPreferenceCode();
});
Run Code Online (Sandbox Code Playgroud)

如果您只想在Edit屏幕上发生的某些事件上运行此代码,则可以使用屏幕pop内的方法,Edit例如

Navigator.pop(context, true); // pass true value
Run Code Online (Sandbox Code Playgroud)

上面的代码应该是:

Navigator.pushNamed(context, "/editScreen").then((value) {
  if (value) // if true and you have come back to your Settings screen 
    yourSharedPreferenceCode();
});
Run Code Online (Sandbox Code Playgroud)

编辑:

async-await 看起来像:

bool value = await Navigator.pushNamed(context, "/editScreen");
if (value) // if true and you have come back to your Settings screen 
  yourSharedPreferenceCode();
Run Code Online (Sandbox Code Playgroud)