и я столкнулся с очень странной проблемой, и я не понимаю ошибки, сначала я выбираю базу страны в этой провинции, а затем город в провинции, она работает, но через некоторое время эта ошибка появляется через некоторое время, когда я выбираю штат
RangeError (index): недопустимое значение: не в диапазоне 0..1 включительно: 2 Соответствующим видящим ошибку виджетом был SearchableDropdown
https://drive.google.com/file/d/1swNSSCfpD142b0fih5s-OZTb90NoxBgX/view
//get CITIES
final String urlcity= "http://10.0.2.2/fff/api/city/";
List<City> ceties;
List<DropdownMenuItem<City>> cetiesDropdownItems=[];
City selectedCity;
Future<String> getcityData(id) async {
var res = await http .get(Uri.encodeFull(urlcity+id.toString()), headers: {"Accept": "application/json"});
if(res.statusCode==200){
var resBody = (res.body);
setState(() {
final String cetiesJson = resBody;
ceties=(jsonDecode(cetiesJson) as List<dynamic>).map<City>((d) => City(d['name'],d['id'])).toList();
cetiesDropdownItems = ceties.map<DropdownMenuItem<City>>((d) => DropdownMenuItem(child:Text(d.name),value:d,)).toList();
});
}
return 'sucess';
}
//my city dropdown
SearchableDropdown.single(
items: cetiesDropdownItems,
value: selectedCity,
hint: "Select one City",
searchHint: "Select one City",
onChanged: (value) {
setState(() {
selectedCity = value;
});
},
isExpanded: true,
),
обратите внимание, что я вызываю городскую функцию внутри провинции
onChanged: (value) {
setState(() {
selectedProvince = value;
getcityData(value.id);
});
},