【发布时间】:2021-07-25 17:55:20
【问题描述】:
这是我的模型类类别
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
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调用函数
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() 使用相同的类型时,为什么会出现此错误。任何帮助将不胜感激。
【问题讨论】:
-
我尝试更改 var categoryNames =
[];列出 categoryNames = [];但仍然有同样的错误。 -
在
categoriesFromJson中的.map()之后添加一个.toList(),因为map 返回一个Iterable。 -
我在从 api 调用返回值时转换为 List。另外,我尝试在模型类的 categoriesFromJson 方法中的 .map() 之后添加 .toList() ,但是红色的弯曲线不会走。
-
我刚刚尝试过,但没有帮助......我也在 app.quicktype.io 的帮助下生成了模型类
-
你试过了吗?
Categories.fromJson(json.decode(str))。我又看了一下代码,不需要List.from和.map()。
标签: api flutter flutter-layout flutter-dependencies flutter-test