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/