Flutter 路由跳转后怎么传参回来?

码农梓淇 阅读 37

我在用 Flutter 做一个编辑页面,从列表页跳转到编辑页后,用户修改了内容,我想在返回时把新数据传回列表页。试过用 Navigator.pop(context, result),但不知道怎么在上一页接收这个值。

我用的是 Navigator.push 跳转的,代码大概这样:

final result = await Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => EditPage()),
);

但返回后 result 始终是 null,是不是哪里写错了?

我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
シ瑞瑞
シ瑞瑞 Lv1
问题出在 EditPage 那边的返回代码。你需要在编辑完成后手动调用 Navigator.pop(context, yourData) 传参,push 本身不会自动带返回值回去。

列表页接收:
final result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => EditPage()),
);
if (result != null) {
// 处理返回的数据
}


编辑页返回时:
Navigator.pop(context, {'name': 'new value'}); // 传你要的数据
点赞
2026-03-18 13:13