首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将参数类型“List<Categories>”分配给参数类型“Iterable<Categories>”

不能将参数类型“List<Categories>”分配给参数类型“Iterable<Categories>”
EN

Stack Overflow用户
提问于 2021-05-03 17:57:08
回答 1查看 164关注 0票数 0

下面是我的模型类类别

代码语言:javascript
复制
List<Categories> categoriesFromJson(String str) => List<Categories>.from(json.decode(str).map((x) => Categories.fromJson(x)));

String categoriesToJson(List<Categories> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));

class Categories {
  Categories({
    this.id,
    this.name,
    this.parentId,
    this.slug,
    this.position,
    this.status,
  });

  int id;
  String name;
  int parentId;
  String slug;
  int position;
  int status;

  factory Categories.fromJson(Map<String, dynamic> json) => Categories(
    id: json["id"],
    name: json["name"],
    parentId: json["parent_id"],
    slug: json["slug"],
    position: json["position"],
    status: json["status"],
  );

  Map<String, dynamic> toJson() => {
    "id": id,
    "name": name,
    "parent_id": parentId,
    "slug": slug,
    "position": position,
    "status": status,
  };
}

我的apiServices

代码语言:javascript
复制
static Future<List<Categories>> fetchCategories() async {
String url = "/categories/all";
var response = await http.get(BASE_URL + url);
if(response.statusCode == 200) {
return categoriesFromJson(response.body).toList();
} else {
return null;
}
}

我的控制器中的api调用函数

代码语言:javascript
复制
var categoryNames = <Categories>[].obs;
void fetchCategories() async {
    try{
      isLoading(true);

      var res = await ApiServices.fetchCategories();
      if(res !=null){
        categoryNames.addAll(res);
      }
    }finally{
      isLoading(false);
    }
  }

在控制器中,当categoryNames.addAll中的res (Res)下划线为红色时,会显示以上错误信息。当我对apiService的categoryNews和fetchCategories()使用相同的类型时,为什么会出现这个错误。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-05-03 18:17:29

尝试像这样显式地定义类型

代码语言:javascript
复制
List<Categories> categoryNames = [];

还要确保从.map()返回一个列表并将.toList()添加到末尾

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67366924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档