doubleyong
管理员
管理员
  • 最后登录2025-02-06
  • 发帖数1196
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:505回复:0

HarmonyOS NEXT 数组中的对象数据变化,UI不刷新问题

楼主#
更多 发布于:2024-11-20 09:13
问题:
修改数组中的对象,页面不重新渲染
原因:
@State只是监听数组的地址值,所以只有地址值改变时才会重新渲染页面

解决方案:
方法1:
//先复制一个临时的列表
let tempList: Array<A> = [...this.dataList]
// 修改tempList数组中的值
tempList[index].key = value;
//将tempList赋值给数组, 页面即可重新渲染
this.List = [...tempList]


方法2:
this.List[index].key = value;  //修改数据
this.List = this.List.map(item=>item);  //map方法会返回一个新数组,故页面也会重新渲染
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号