如何解决Flutter 错误类型“_InternalLinkedHashMap<String, dynamic>”不是“List<dynamic>”类型的子类型
我正在尝试使用提供程序包和 any_options 从我的 RESTAPI 获取一些帖子,但我遇到了一些麻烦。每次我运行应用程序时,它都会给我这个错误
类型 '_InternalLinkedHashMap
这是它提到错误的地方:
Future<Either<String,List<Post>>> getPostsList() async {
var url = Uri.tryParse("myUrl");
try {
var response = await http.get(url);
final List responseBody = jsonDecode(response.body);
return Right(PostsList.fromJson(responseBody).postsLists);
} catch (e) {
print(e);
return Left(ApiErrorHandling.getDioException(e));
}
}
也在这里:
List<Post> postsList = List<Post>();
getPostsList() async {
final Either<String,List<Post>> result =
await ApiServices().getPostsList();
result.fold((e) {
setErrorMessage(e);
setUiStateAndNotify(UISTATE.ERROR);
},(f) {
postsList = f;
setUiStateAndNotify(UISTATE.SUCCESS);
});
}
我真的很困惑为什么会显示这个错误,所以我想知道为什么。谢谢
解决方法
我打开了你的 api 结果,你感兴趣的列表位于响应体中的关键“data”处,因此将代码更改为:
final List responseBody = jsonDecode(response.body)["data"];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。