flutter 使用 getx 传递多个数据

问题描述 投票:0回答:5

我想使用获取包将多个数据从一个屏幕传递到另一个屏幕。

Get.to(Second(), arguments: ["First data", "Second data"]);
flutter get arguments send flutter-getx
5个回答
34
投票

步骤:1:发送数据

Get.to(Second(), arguments: ["First data", "Second data"]);

步骤:2:从第一个屏幕获取数据

var data = Get.arguments;

26
投票

如果您需要在 getx 中使用 keyvalue 传递数据,请尝试此

第一屏

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"}
]);

17
投票

我找到了这个解决方案。

第一个屏幕

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
        ],
      )

2
投票

您可以传递字符串、映射、列表,甚至是类实例。

Get.toNamed("/example_page", arguments: {'arg1': 'val1', 'arg2': 'val2'};

下一页:

final args = Get.arguments;
print(args); // output: {arg1:val1, arg2:val2}
            

更多详情


0
投票

如果您想在 Getx 参数中的任何 List/ModelClass 上传递数据,

第一个屏幕

     List<ModelClassName>modelList = [];

导航

  Get.toNamed(YouRoutes.Name ,
                        arguments:  modelList[index] );

注意 - ListView.builder 下的“索引”。

下一个屏幕

ModelClassName data = Get.arguments;


 
© www.soinside.com 2019 - 2024. All rights reserved.