【问题标题】:Flutter Error type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'Flutter 错误类型“_InternalLinkedHashMap<String, dynamic>”不是“List<dynamic>”类型的子类型
【发布时间】:2021-07-24 19:38:01
【问题描述】:

我正在尝试使用提供程序包和 any_options 从我的 RESTAPI 中获取一些帖子,但我遇到了一些麻烦。每次我运行应用程序时都会出现此错误

类型'_InternalLinkedHashMap'不是类型'List'的子类型

这是它提到错误的地方:

  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);
});
}

我真的很困惑为什么会出现这个错误,所以我想知道为什么。谢谢

【问题讨论】:

    标签: flutter dart provider flutter-http


    【解决方案1】:

    我打开了你的api结果,你感兴趣的列表位于响应体中的关键“数据”,所以把你的代码改成这样:

    final List responseBody = jsonDecode(response.body)["data"];
    

    【讨论】:

      猜你喜欢
      • 2022-11-11
      • 2021-04-07
      • 2021-01-22
      • 2022-07-22
      • 2020-07-03
      • 2021-01-30
      • 2019-04-03
      • 2019-03-23
      • 2021-01-13
      相关资源
      最近更新 更多