如何让Get.back()携带参数并在Page A中接收该参数
在GetX中从Page B返回Page A时接收返回参数
方式1:使用Get.to()跳转时接收返回值
当你在Page A中通过Get.to()跳转到Page B时,Get.to()会返回一个Future,你可以通过await或者.then()来获取Page B返回的参数。
示例代码:
// Page A 跳转逻辑 void goToPageB() async { // 跳转到Page B并等待返回结果 final result = await Get.to(() => PageB()); // 判断结果不为空后处理参数 if (result != null) { // 你传递的是数组[newCreatedId],所以取第一个元素 final newCreatedId = result[0]; // 这里添加你的业务逻辑,比如更新页面数据、触发状态更新等 print('从Page B返回的ID:$newCreatedId'); } }
Page B中的返回代码:
// Page B 点击返回按钮时的逻辑 void goBack() { // 假设newCreatedId是你要传递的变量 final newCreatedId = 'xxx123'; // 携带参数返回Page A Get.back(result: [newCreatedId]); }
方式2:使用命名路由Get.toNamed()跳转时接收返回值
如果用命名路由跳转,接收逻辑和Get.to()一致,同样通过await获取返回值:
// Page A 命名路由跳转逻辑 void goToPageB() async { final result = await Get.toNamed('/pageB'); if (result != null) { final newCreatedId = result[0]; // 处理业务逻辑 } }
补充说明
- 如果你不需要传递数组,直接传递单个值(比如
Get.back(result: newCreatedId)),那么Page A中直接取final newCreatedId = result;即可。 - 确保全程使用GetX的路由方法(
Get.to()/Get.toNamed()/Get.back()),不要混用原生Navigator,否则无法正确接收返回参数。
内容的提问来源于stack exchange,提问作者matti peter
相关产品推荐
相关产品推荐

