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

Flutter发送GET请求时如何更新容器数据而非追加原有旧数据

问题根因

你每次触发请求拿到返回数据后,直接调用add方法向全局的_userDetails列表追加内容,没有清空上一次请求留存的旧数据,因此会出现新老数据叠加展示的问题。

修复方案

修改请求方法内的setState逻辑,写入新数据前先清空原有列表,或者直接用新数据覆盖原有列表即可,两种写法任选其一即可:

写法1:先清空再追加新数据

修改getEventsTTNDetails方法内的setState部分:

setState(() {
  // 清空旧数据
  _userDetails.clear();
  for (Map<String, dynamic> user in responseJson) {
    _userDetails.add(eventHistory.fromJson(user));
  }
});

写法2:直接用新数据覆盖原有列表(更简洁)

setState(() {
  _userDetails = responseJson.map<eventHistory>((jsonItem) => eventHistory.fromJson(jsonItem)).toList();
});

可选优化建议

Dart官方编码规范建议类名使用大驼峰命名,你可以将eventHistory类名修改为EventHistory,更符合通用开发规范。

内容的提问来源于stack exchange,提问作者Андрій Гавриляк

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:36:04