如何将已成功赋值的RxList从一个页面传递至另一页面?
在另一个页面使用已赋值的RxList变量
方法1:通过GetX控制器共享(推荐)
如果selectedAddress定义在GetX控制器中,直接在目标页面获取控制器即可访问该变量,还能监听数据变化:
// 目标页面内获取控制器 final addressController = Get.find<AddressController>(); // 在Obx组件中监听并使用数据 Obx(() { return ListView.builder( itemCount: addressController.selectedAddress.length, itemBuilder: (context, index) { return Text(addressController.selectedAddress[index]['address']); }, ); });
方法2:路由跳转时传递参数
跳转页面时将selectedAddress作为参数传入,目标页面直接接收使用:
// 发起跳转的代码 Get.to(YourTargetPage(selectedAddress: selectedAddress)); // 目标页面的定义 class YourTargetPage extends StatelessWidget { final RxList<Map<String, dynamic>> selectedAddress; const YourTargetPage({Key? key, required this.selectedAddress}) : super(key: key); @override Widget build(BuildContext context) { return Obx(() { return Text("已选中 ${selectedAddress.length} 个地址"); }); } }
方法3:全局变量直接引用(不推荐)
如果selectedAddress是全局作用域的变量,目标页面可直接引用,同样需要用Obx监听变化:
// 目标页面内直接使用 Obx(() { return Text(selectedAddress.isNotEmpty ? selectedAddress.first['name'] : "无选中地址"); });
注意:由于是RxList,必须在
Obx、GetX或GetBuilder组件中使用,才能实时响应数据的更新。
内容的提问来源于stack exchange,提问作者Umar Web
相关产品推荐
相关产品推荐

