flutter - 在页面焦点事件上颤动?
问题描述
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
to传递到Screen1
with pop()
:
在 Screen2 中:
Navigator.pop(context, data);
在 Screen1 中:
final dataFromScreen2 = await Navigator.push(context, Screen2);
推荐阅读
- reactjs - 在我的父组件中使用 React Router 登录后如何重新路由?
- javascript - 为什么我们将 actionTypes 声明为常量而不是将它们用作字符串?
- javascript - 如何在使用 Jest 测试 Node.js 应用程序时在调用的函数中模拟方法
- python - 关闭 R Notebook 中的警告
- python - Discord.py add_roles 问题
- javascript - 创建内部带有循环的异步函数
- xcode - NSPredicateEditorRowTemplate 从 keyPaths 恢复为常量值
- julia - 在 Julia 中获取嵌套数组的形状
- python - python中2D ifft的比例系数
- android - 如何使用锁屏密码代替指纹