首页 > 解决方案 > 在页面焦点事件上颤动?

问题描述

initState() 将始终调用页面的初始化,这很好。

但是,如果我有 2 个屏幕怎么办

屏幕 1 导航到屏幕 2。现在,当您在第 2 页(弹出)上按返回时,第 1 页上是否有一个事件知道我们又回来了?

换句话说,屏幕 1 是否可以在第 2 页的背面按下时触发事件?

这对于设置状态很有用,例如在屏幕 2 上更改的全局变量,因此屏幕 1 可以相应地更新

标签: flutterdartstate

解决方案


您可以await Navigator.push()在弹出路由时解决。

在 Screen1 中:

await Navigator.push(context, Screen2);
// Do something when Screen2 is popped

您还可以将数据从Screen2to传递到Screen1with pop()

在 Screen2 中:

Navigator.pop(context, data);

在 Screen1 中:

final dataFromScreen2 = await Navigator.push(context, Screen2);

推荐阅读