类型'String'不是Map <Dynamic,Dynamic>的子类型

时间:2019-10-10 10:51:20

标签: flutter

我有一个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);
                              });
                            },
                          ),

enter image description here

正在尝试使下拉列表仅显示名称。但是我得到的错误类型'String'不是Map类型的子类型。我为什么做错了

1 个答案:

答案 0 :(得分:0)

自行指定类型Map将使编译器假定其类型为Map<dynamic, dynamic>。您需要更改此行:

items: countries.map((Map dropDownStringItem) {

对此:

items: countries.map((Map<String, String> dropDownStringItem) {