Отправьте несколько переменных обратно на экран с помощью Navigator.pop - PullRequest
0 голосов
/ 28 апреля 2020

Я отправляю аргументы обратно, используя Navigator.pop, оборачивая их в класс. Но в предыдущей печати экрана результаты говорят «Экземпляр« FilterArguments »var result = await Navigator.pushNamed(context, '/filters'); и отправляют данные обратно, как это. Navigator.pop(context, FilterArguments(upperRange: 1000, lowerRange: 200, beds: 21));

1 Ответ

0 голосов
/ 28 апреля 2020

Hellow Anas,

Добро пожаловать в stackoverflow, я вижу, что вы также относительно плохо знакомы с флаттером!

При отправке аргументов в Navigator.pop(context, arguments) вы можете сделать несколько вещей. Отправка обратно пользовательского Class - это мой путь к go (как вы уже сделали), так что это здорово.

Однако, когда вы пытаетесь напечатать класс, вы всегда получите Instance of 'Something' , Это правильное поведение, и это означает, что вы получили то, что отправили обратно.

Если вы хотите проверить, что находится внутри этого класса, я предлагаю поставить breakpoint и отладить его, однако я могу заверить Вы, что вы получили свои данные!

Редактировать с примерами

class Fruit {
  final String name;
  final Color color;
  Fruit({this.name, this.color});
}

//Popping the info
...
Navigator.pop(context, Fruit(name: 'banana', color: Colors.yellow));
...

//Retreiving the info
...
final Fruit selectedFruit = await Navigator.pushNamed(context, '/fruit-selector');

//Using the info
print(selectedFruit.name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...