You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用fetchPosts获取List返回0条数据,请求逻辑是否有误?

问题分析与解决建议

你提供的fetchPosts请求逻辑本身没有错误。该接口正常会返回100条帖子数据,代码里的状态码判断、JSON解析及模型转换逻辑均符合规范。

导致posts为空、ListView的itemCount显示0的原因大概率出在UI层的异步状态处理上,常见情况包括:

  • 未触发UI状态更新:调用fetchPosts后,没有将返回的数据赋值给posts并触发UI重建。比如在StatefulWidget中,需要通过setState更新状态;使用状态管理工具时,要确保通知UI刷新。
    示例修正(StatefulWidget场景):
    // 在State类中
    List<PostModel> posts = [];
    
    @override
    void initState() {
      super.initState();
      loadPosts();
    }
    
    Future<void> loadPosts() async {
      final repository = PostsRepository();
      try {
        final fetchedPosts = await repository.fetchPosts();
        setState(() {
          posts = fetchedPosts; // 更新数据并触发UI重建
        });
      } catch (e) {
        // 处理请求错误,比如网络异常
        print(e);
      }
    }
    
  • 异常未被捕获:如果请求过程中出现网络错误、解析失败等情况,代码会抛出异常,但你可能没有捕获该异常,导致posts始终未被赋值有效数据。
  • 初始值未正确处理:若posts变量初始为空列表,且请求过程中没有正确替换其值,ListView会一直以空列表渲染。

内容的提问来源于stack exchange,提问作者Caio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:04:58