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

How to reload or call some function initState() in flutter while using pop

我正在尝试 运行 某些方法,当用户点击后退或我在第二个屏幕中使用 Navigator.pop() 时。

我有两个屏幕。

  1. 设置屏幕
  2. 编辑屏幕

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

Settings 屏幕导航到 Edit 屏幕时,使用此(在您的 Settings 屏幕内)

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

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

Navigator.pop(context, true); // pass true value

上面的代码应该是:

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

编辑:

async-await 看起来像:

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