Я пытаюсь отправить элемент в одно представление.Этот элемент будет элементом по умолчанию в раскрывающемся списке второй страницы.Я использую что-то подобное на первой странице
onTap: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new SummaryPage(,
dropdownItem: dropdownSelection)));
}
Затем на второй странице я создаю будущее, чтобы получить все элементы в раскрывающемся списке, и метод initstate для установки раскрывающегося элемента по умолчанию
List data = List();
Future<Null> getEstates() async {
final response = await http
.get('URL'
}).catchError((error) {
print(error.toString());
});
final responseJson = json.decode(response.body);
final getBody = responseJson['body'];
setState(() {
data = getBody;
loading = false;
});
}
void initState() {
super.initState();
setState(() {
dropdownSelection = widget.dropdownItem.toString();
});
getEstate возвращает это
[{id: 1, описание: Terreno Rio}, {id: 2, описание: Terreno Asier}]
Выпадающий список выглядит примерно так
child: ButtonTheme(
alignedDropdown: true,
child: new DropdownButton<String>(
isDense: true,
hint: new Text("Search...",
textAlign: TextAlign.center),
value: dropdownSelection,
onChanged: (String newValue) {
setState(() {
dropdownSelection = newValue;
},
items: data.map((item) {
return new DropdownMenuItem<String>(
child: new Text(
item['description'],
),
value: item['id'].toString(),
);
}).toList(),
),
),
Отображаемая ошибка:
value == null ||items.where ((DropdownMenuItem item) => item.value == value) .length == 1 ': не соответствует действительности
Видимо, код в порядке, но когда я перехожу ко второму виду, отображаетсяошибка просмотра около 1 секунды, а затем показать вторую страницу.Я думаю, что значение может быть загружено слишком рано, и выпадающий список не может быть установлен правильно.Любая идея, почему эта ошибка происходит и как я могу их исправить?