#flutter #dart
#flutter #dart
Вопрос:
В моем приложении есть 2 экрана. 1-й экран передает аргумент на 2-й экран. На этом 2-м экране мне нужно использовать аргумент, полученный с 1-го экрана, и инициализировать list
объект в initState
методе.
Проблема, с которой я сталкиваюсь, заключается в том, что пока build
метод не будет выполнен, я не смогу получить доступ к аргументу, который был передан с 1-го экрана, поэтому не смогу инициализировать list
объект.
Есть ли способ получить доступ к аргументу, переданному с 1-го экрана, и инициализировать list
его при вызове метода initState?
Большое спасибо за ваше время заранее.
ЭКРАН 1:
.
.
.
@override
Widget build(BuildContext context) {
return ListTile(
onTap: () {
Navigator.of(context).pushNamed(
ContentPage.routeName,
arguments: topicID,
);
},
}
ЭКРАН 2:
List<String> topicID;
List<String> response;
.
.
.
@override
void initState() {
super.initState();
topicID = response;
}
.
.
.
@override
Widget build(BuildContext context) {
response = ModalRoute.of(context).settings.arguments;
}
.
.
.
Получение приведенной ниже ошибки:
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
RangeError (index): Invalid value: Valid value range is empty: 0
The relevant error-causing widget was:
MaterialApp file:///C:/Projects/Mobile/newapp/lib/main.dart:39:14
════════════════════════════════════════════════════════════════════════════════════════════════════
Комментарии:
1. Пожалуйста, предоставьте некоторый код, который вы уже пробовали.
2. Привет @Akif, я добавил код к проблеме. Спасибо!