gpt4 book ai didi

dart - Flutter - 下拉列表中的默认值

转载 作者:IT王子 更新时间:2023-10-29 06:54:22 26 4
gpt4 key购买 nike

我正在尝试将一个元素发送到一个 View 。该元素将成为第二页下拉列表中的默认元素。我在第一页使用类似的东西

  onTap: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new SummaryPage(,
dropdownItem: dropdownSelection)));
}

然后在第二页我创建 future 来获取下拉列表中的所有元素和 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, descripcion: Terreno Rio}, {id: 2, descripcion: 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': is not true

显然代码没问题,但是当我转到第二个 View 时,显示大约 1 秒的错误 View ,然后显示第二页。我认为该值可能加载得太早,下拉菜单无法正确设置。知道为什么会发生此错误,我该如何解决?

最佳答案

那是因为第一次你没有任何值(你的列表是空的),所以你可以显示一个CircularProgressIndicator,像这样:

        child: data.length > 0 ? ButtonTheme(
alignedDropdown: true,
child: new DropdownButton<String>(
isDense: true,
hint: new Text("Buscar..",
textAlign: TextAlign.center),
value: dropdownSelection,
onChanged: (String newValue) {
setState(() {
dropdownSelection = newValue;
},
items: data.map((item) {
return new DropdownMenuItem<String>(
child: new Text(
'Finca: ' + item['descripcion'],
),
value: item['id'].toString(),
);
}).toList(),
),
),
) : Center(child: CircularProgressIndicator()),

关于dart - Flutter - 下拉列表中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53555367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com