flutter передает несколько данных с помощью getx

Я хочу передать несколько данных с одного экрана на другой с помощью пакета Get.

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

6 ответов

Шаг: 1 : отправка данных

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

Шаг: 2 : Получите данные с первого экрана

      var data = Get.arguments;

Если вам нужно передать данные с ключом и значением в getx, попробуйте это

Первый экран

      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.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}
            

Более детально

если вы хотите передать данные в любой List/ModelClass в аргументах Getx,

первый экран

           List<ModelClassName>modelList = [];

Навигация

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

примечание: «индекс» в ListView.builder.

Следующий экран

      ModelClassName data = Get.arguments;


 

Если вы перемещаетесь по экрану через конкретное имя экрана, сделайте это так:

Сначала вам нужно определить список страниц в GetMaterialApp()виджет

      GetMaterialApp(
  home: Home(),
  getPages: [
    GetPage(name: '/home', page: () => HomeView()),
    GetPage(name: '/second', page: () => Second()),
  ],
);

Затем используйте его, как показано ниже

      Get.toNamed("/second", arguments: ["First data", "Second data"]);
Другие вопросы по тегам