参数类型'List <iterable <dropdownmenuitem <int >>>'不能分配给参数类型'List <dropdownmenuitem <dynamic >>'

时间:2019-05-17 23:59:26

标签: flutter

在扑朔迷离中,我使用TMDB API并从那里获取流派名称,并希望在我的DropdownButton上显示它们,但出现此错误。

  

不能分配参数类型列表>>   参数类型为'List >

{
  "genres": [
    {
      "id": 28,
      "name": "Action"
    },
    {
      "id": 12,
      "name": "Adventure"
    },
    {
      "id": 16,
      "name": "Animation"
    }, .......]
}

这是json。

return DropdownButton(
              items: [ snapGenre.data.genres.map((map) => DropdownMenuItem(child: Text(map.name),value: map.id,))]
                      );
                    }

这是我尝试过的部分。

简而言之,我想根据我从API获得的流派名称返回/创建一个dropDownMenuItem。我想念哪一部分,您能帮我吗?

1 个答案:

答案 0 :(得分:2)

您要通过使用List声明一个[],然后在其中映射数据,所以最终在Iterable中使用List。相反,您必须删除[]并在最后将Iterable转换为List

return DropdownButton(
  items: snapGenre.data.genres.map((map) => DropdownMenuItem(
      child: Text(map.name),
      value: map.id,
    ),
  ).toList(),
);