如何在使用 pop 时在 flutter 中重新加载或调用某些函数 initState()
How to reload or call some function initState() in flutter while using pop
我正在尝试 运行 某些方法,当用户点击后退或我在第二个屏幕中使用 Navigator.pop()
时。
我有两个屏幕。
- 设置屏幕
- 编辑屏幕
编辑后我将用户弹出到第一秒。现在在第一个屏幕中我使用 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();
我正在尝试 运行 某些方法,当用户点击后退或我在第二个屏幕中使用 Navigator.pop()
时。
我有两个屏幕。
- 设置屏幕
- 编辑屏幕
编辑后我将用户弹出到第一秒。现在在第一个屏幕中我使用 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();