我想使用获取包将多个数据从一个屏幕传递到另一个屏幕。
Get.to(Second(), arguments: ["First data", "Second data"]);
步骤:1:发送数据
Get.to(Second(), arguments: ["First data", "Second data"]);
步骤:2:从第一个屏幕获取数据
var data = Get.arguments;
如果您需要在 getx 中使用 key 和 value 传递数据,请尝试此
第一屏
Get.to(() => SecondScreen(), arguments: [
{"first": 'First data'},
{"second": 'Second data'}
]);
第二个屏幕
class SecondScreenController extends GetxController {
dynamic argumentData = Get.arguments;
@override
void onInit() {
print(argumentData[0]['first']);
print(argumentData[1]['second']);
super.onInit();
}
}
Get.back() 结果
Get.to(() => SecondScreen(), arguments: [
{"first": 'First data'},
{"second": 'Second data'}
]).then((result) {
if (result[0]["backValue"] == "one") {
print("Result is coming");
}
});
Get.back(result: [
{"backValue": "one"}
]);
我找到了这个解决方案。
第一个屏幕
Get.to(Second(), arguments: ["First data", "Second data"]);
第二个屏幕
声明变量(列表)
var one = Get.arguments;
设定数据
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("${one[0]}"), // first element set here
Text("${one[1]}"), // second element set here
],
)
您可以传递字符串、映射、列表,甚至是类实例。
Get.toNamed("/example_page", arguments: {'arg1': 'val1', 'arg2': 'val2'};
下一页:
final args = Get.arguments;
print(args); // output: {arg1:val1, arg2:val2}
如果您想在 Getx 参数中的任何 List/ModelClass 上传递数据,
第一个屏幕
List<ModelClassName>modelList = [];
导航
Get.toNamed(YouRoutes.Name ,
arguments: modelList[index] );
注意 - ListView.builder 下的“索引”。
下一个屏幕
ModelClassName data = Get.arguments;