我正在创建一个带有搜索功能的下拉按钮。所以我使用了this包。这个包有问题。API的响应如下。
List countries = [
{
'id': '1',
'name': 'Brazil',
},
{
'id': '2',
'name': 'India',
},
{
'id': '3',
'name': 'Japan',
},
{
'id': '4',
'name': 'Tokyo',
},
{
'id': '5',
'name': 'Australia',
},
{
'id': '6',
'name': 'Srilanka',
},
{
'id': '7',
'name': 'Canada',
},
];
我的下拉代码是这样的,
body: Column(
children: [
DropdownSearch<String>(
mode: Mode.MENU,
items: countries['name'],
showSearchBox: true,
label: "Menu mode",
hint: "country in menu mode",
onChanged: (value){
print(countries['name']);
},
selectedItem: "Canada",
),
],
),
这里items: countries['name']
行i得到错误为The argument type 'String' can't be assigned to the parameter type 'int'.
此外,当我选择一个国家,我想打印国家ID.例如:如果我选择国家为日本,那么它应该打印4在控制台。我的代码是不工作。
4条答案
按热度按时间idfiyjo81#
首先,一个列表的Map不这样工作-〉(
countries['name]
),尝试替换你的items
:liwlm1x92#
尝试下面的代码希望对你有所帮助。
请参阅我的答案here,了解如何将json数据放到下拉列表中
您的结果屏幕-〉x1c 0d1x
muk1a3rh3#
必须创建一个数据类Country并覆盖toString函数以返回国家/地区名称。
并更新您的下拉列表Search,如下所示:
gcmastyq4#
像这样使用您自己的国家模型
不要忘记使用-〉
itemAsString field
//或者
您可以访问包本身的-https://pub.dev/packages/dropdown_search#customize-showed-field-itemasstring部分