我有一个dart文件,其中存储了国家名称和拨号代码的地图列表。因此格式是...
countries = List<Map> countries = [ { "name": "Afghanistan", "dial_code": "+93", "code": "AF" }, { "name": "Åland Islands", "dial_code": "+358", "code": "AX" } ]
我将其与buttondropdown文件一起导入到我的主文件中,并尝试在其上使用map函数。
child: DropdownButtonFormField(
decoration: InputDecoration(
border: InputBorder.none,
prefixIcon: Icon(Icons.location_city,
color: Colors.white)),
items: countries
.map((Map<String, String> dropDownStringItem) {
return DropdownMenuItem<String>(
value: dropDownStringItem,
child: Text(dropDownStringItem),
);
}).toList(),
onChanged: (value) {
setState(() {
print(value);
});
},
),
正在尝试使下拉列表仅显示名称。但是我得到的错误类型'String'不是Map类型的子类型。我为什么做错了
答案 0 :(得分:0)
自行指定类型Map
将使编译器假定其类型为Map<dynamic, dynamic>
。您需要更改此行:
items: countries.map((Map dropDownStringItem) {
对此:
items: countries.map((Map<String, String> dropDownStringItem) {