【列表数据更新后页面不刷新】

从网络请求获取新数据,更新了​​@State​​数组,但页面列表还是显示旧数据。

@State list: string[] = ['苹果', '香蕉']
// 模拟请求新数据
fetchNewData() {
  this.list = ['西瓜', '葡萄'] // 数据变了,但页面没变!
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

疑惑点:明明用了​​@State​​装饰器,为什么页面不自动刷新?需要手动调用什么方法吗?


鸿蒙
2025-03-30 20:22:15
913浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
网罗开发

我猜测可能的原因,数据发生了变化,但是数据的地址没变,还是原来的。可以试试下面的方法:

赋值新的数组引用。

导致原因:ArkUI 需要检测到 ​​@State​​​ 变量的引用发生变化,而不是仅仅修改数组的内容。
解决方法:使用 新数组对象 赋值,而不是修改原数组。

fetchNewData() {
  this.list = [...['西瓜', '葡萄']]; // 重新赋值新数组,确保引用变化
}
  • 1.
  • 2.
  • 3.
分享
微博
QQ
微信
回复
2025-03-30 22:37:27
相关问题
HarmonyOS 更新数据UI刷新
1035浏览 • 1回复 待解决
如何更新页面列表数据
7969浏览 • 1回复 待解决
HarmonyOS 卡片更新图片刷新
870浏览 • 1回复 待解决
HarmonyOS 页面更新
594浏览 • 1回复 待解决
IF条件变化UI刷新
1412浏览 • 1回复 待解决
HarmonyOS使用@ObjectLink 数据刷新
1442浏览 • 2回复 待解决
HarmonyOS 列表多选页面无法刷新
693浏览 • 1回复 待解决
HarmonyOS 懒加载列表更改属性UI刷新
775浏览 • 1回复 待解决
鸿蒙开发api版本更新兼容?
358浏览 • 1回复 待解决
HarmonyOS 深色模式切换界面刷新
1032浏览 • 1回复 待解决