我有2个下拉菜单。从第一个下拉菜单中选择项目时。我需要在第二个下拉菜单中添加项目,但这会导致错误。
我检查了第二个下拉菜单中的项目已经为空。当第一个下拉菜单更改为第二个下拉菜单时,该菜单项不是空的,但不起作用并给出错误提示。
有什么主意吗?
第一个下拉代码:
Widget getPolWidget() {
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Icon(
Icons.touch_app,
size: 25.0,
color: Colors.black,
),
SizedBox(width: 50.0),
DropdownButton(
items: this.polList
.map((value) => DropdownMenuItem(
child: Text(
value.code,
style: TextStyle(color: Colors.black),
),
value: value.id,
))
.toList(),
onChanged: (selectedType) {
getPod(selectedType);
setState(() {
selectedPodId = selectedType;
});
},
value: selectedPodId,
isExpanded: false,
hint: Text(
'Choose Type',
style: TextStyle(color: Colors.black),
),
)
],
);
}
Widget getPodWidget() {
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Icon(
Icons.touch_app,
size: 25.0,
color: Colors.black,
),
SizedBox(width: 50.0),
DropdownButton(
items: this.podList
.map((value) => DropdownMenuItem(
child: Text(
value.code,
style: TextStyle(color: Colors.black),
),
value: value.id,
))
.toList(),
onChanged: (selectedType) {
setState(() {
selectedPodId = selectedType;
print(selectedPodId);
});
},
value: selectedPodId,
isExpanded: false,
hint: Text(
'Choose Type',
style: TextStyle(color: Colors.black),
),
)
],
);
}
错误消息:'package:flutter / src / material / dropdown.dart':失败的断言:620行pos 15:'item == null || items.isEmpty ||值== null || items.where(((DropdownMenuItem item)=> item.value == value).length == 1':不正确。
答案 0 :(得分:0)
你好,你必须声明一个变量并传递到DropdownButton的value参数中,在onchanged方法中,必须更新该变量
String a = "fdhsa";
value:a,
onchanged:(h){setState(){a=h;}},
请确保您的value参数与下拉列表中继承的列表中的参数相同