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