我正在从 API 创建 DropdownButton。下拉列表已经按照我的需要显示了,但是问题是我选择的列表没有显示出来,点击列表时出现错误:
Unhandled Exception: type 'int' is not a subtype of type 'String'
这是我的变量声明:
String _provinceSelected;
这是我的 DropdownButton 小部件:
DropdownButton(
hint: Text('your province'),
itemHeight: 60,
isExpanded: true,
items: dataProvince.map((item) {
return DropdownMenuItem(
child: Text(item['name']),
value: item['id'],
);
}).toList(),
onChanged: (value) {
setState(() {
_provinceSelected = value;
});
},
value: _provinceSelected,
),
我的代码有什么问题吗?请帮忙?
答案 0 :(得分:1)
我的代码有问题吗?
类型不匹配。
类型变量 _provinceSelected
被定义为 String
类型,但是当赋值时,它被赋值为 int
类型,因为 item['id']
是一个int
。
更新 DropdownButton
以设置类似 Type
的 DropdownButton<String>
值并将值定义更新为 String
。
DropdownButton<String>(
hint: Text('your province'),
itemHeight: 60,
isExpanded: true,
items: dataProvince.map((item) {
return DropdownMenuItem(
child: Text(item['name']),
value: item['id'].toString(),
);
}).toList(),
onChanged: (value) {
setState(() {
_provinceSelected = value;
});
},
value: _provinceSelected,
),
答案 1 :(得分:0)
我认为您对 id (int)
和 _provinceSelected (String)
的数据类型有问题。因为 DropdownMenuItem 中 id
的值会在 onChanged
函数中返回值。因此您可以更改 id to String
或 _provinceSelected to int
的数据类型。希望可以帮到你。