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

Flutter中加载API返回JSON列表的ListView页应选Stateless还是Stateful Widget

结论

必须使用StatefulWidget实现该物品列表页。


原因说明
  • StatelessWidget是无状态组件,所有属性声明后均为不可修改的final类型,构建完成后无法主动触发UI更新,仅能通过父组件重新构建变更内容,完全不匹配你的业务需求。
  • 你的页面存在两个必须由组件自身维护的可变状态:
    1. 从API拉取的物品列表数据:首次进入页面、下拉刷新时都会更新这份数据,需要存储在组件内部的可变状态中
    2. 可选的加载/错误状态:如果要做请求中的加载提示、请求失败的错误提示,这些状态也需要组件内部管理
  • 下拉刷新触发的API请求完成后,需要调用setState方法通知Flutter框架刷新UI,这个方法只有StatefulWidget对应的State类才能调用。

极简实现参考

你可以按照如下结构开发:

  1. 定义State类内的可变字段存储列表数据:List<Item> items = [];
  2. 在initState生命周期中触发首次API请求,请求成功后更新items并调用setState
  3. 使用RefreshIndicator包裹ListView,在onRefresh回调中触发重新拉取数据的逻辑,拉取完成后再次调用setState更新列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:36:04