Flutter 页面返回传值需要注意的几点如下:
1、跳转页面时要使用async关键字修饰方法体 声明内部代码需要延迟执行
skipPage(BuildContext context) async { }
2、跳转动作要使用await关键字修饰(Dart规定有async
标记的函数,只能由await
来调用) 声明延迟执行后赋值
final result = await Navigator.push(context,MaterialPageRoute(builder: (context) => PageA()));
3、返回页面时传值
Navigator.pop(context, '我是返回数据');
示例代码
//完整跳转页面 接收返参 代码片段
RaisedButton(
child: Text('跳转页面'),
onPressed: () async {
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => PageA()),
);
print("$result");
},
)
当然,我们也可以这样写
//完整跳转页面 接收返参 代码片段 另一种写法
RaisedButton(
child: Text('跳转页面'),
onPressed: () {
skipPage(context);
},
)
skipPage(BuildContext context) async {
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => PageA()),
);
print("$result");
}