我有一个列表页面,一个添加页面,用户单击添加页面,转到新页面,在该页面中添加一些实体。然后我弹出导航器,然后用户返回列表页面。在这一点上,我想以某种方式得到通知-可能是回调?重写方法,我不太确定-然后从数据库中重新读取信息。
扑上有这样的钩子吗?还是我应该使用另一种模式?
ada*_*ion 18
如果在您的列表页面,您创建函数让说retrieveData() 读取数据列表然后在initState 中调用它,如果您使用pushNamed 路由,简单的解决方案是
Navigator.pushNamed(context, '/adddatapage').whenComplete(retrieveData());
Run Code Online (Sandbox Code Playgroud)
如果您使用推送路线,
Navigator.of(context).push(new MaterialPageRoute(builder: (context) => AddPage())).whenComplete(retrieveData);
Run Code Online (Sandbox Code Playgroud)
那应该就够了。无需在添加页面上添加额外代码。如果用户再次按下后退按钮,这将起作用,而无需在添加页面中添加额外代码。
该Navigator.push
方法返回Route的通用类型的future:
Navigator.of(context)
.push(new MaterialPageRoute<String>(...))
.then((String value) {
print(value);
});
Run Code Online (Sandbox Code Playgroud)
在新路线中,当您拥有所需的价值时:
Navigator.of(context).pop('String');
Run Code Online (Sandbox Code Playgroud)
为@ian 的答案添加一个选项
Navigator.of(context)
.push(new MaterialPageRoute<String>(...))
.then((value) => setState(() => {}));
Run Code Online (Sandbox Code Playgroud)
这对我有用。这将在加载页面时重建。
归档时间: |
|
查看次数: |
6664 次 |
最近记录: |