Мой fetchCities()
метод возвращает Future<List<City>>
и загружает данные из остальных веб-сервисов.Код для заполнения элементов:
Widget buildCitiesSelector(){
return new Center(
child: FutureBuilder(
future: fetchCities() ,
builder: (context, snapshot){
if (snapshot.hasData) {
return new DropdownButton <City>(
hint: Text('Wybierz miasto'),
items: snapshot.data.map<DropdownMenuItem<City>>((City value) {
return DropdownMenuItem<City>(
value: value,
child: Text(value.name),
);
}).toList(),
onChanged: (value) {
setState(() {_selectedCity = value;});
},
value: _selectedCity,
);
}
else{
return CircularProgressIndicator();
}
}
)
);
}
Результат: элементы правильно отображаются в селекторе.Тем не менее, при выборе какого-либо конкретного элемента, я получаю исключение:
I / flutter (13910): ══╡ ИСКЛЮЧЕНИЕ ЗАДЕРЖАНО БИБЛИОТЕКОЙ ВИДЖЕТОВ ════════════════════════════════════════════════════════════ I /flutter (13910): было сгенерировано следующее утверждение при создании FutureBuilder> (грязный, состояние: I / flutter (13910): _FutureBuilderState> # dacd9): I / flutter (13910): 'package: flutter / src / material / dropdown.dart': Неудачное утверждение: строка 560 поз 15:' items == null ||I / флаттер (13910): items.isEmpty ||значение == ноль ||items.where ((DropdownMenuItem item) => item.value == I / flutter (13910): значение) .length == 1 ': неверно.
Как правильно выбрать элемент?Есть идеи что не так?