initState()总是会在页面初始化时调用,这很棒。

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

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

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

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

最佳答案

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

在Screen1中:

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

您还可以使用Screen2将数据从Screen1传递到pop():

在Screen2中:

Navigator.pop(context, data);

在Screen1中:

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

关于flutter - 在页面焦点事件上出现抖动?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62046526/

10-10 20:22