调用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
相关产品推荐
相关产品推荐

