HarmonyOS 鸿蒙Next 更新了Array中的某个属性,但UI没有进行对应的更新

HarmonyOS 鸿蒙Next 更新了Array中的某个属性,但UI没有进行对应的更新

在一个list中,修改了Array中某个属性的值,页面没有刷新,删除或新增Array中的值才会刷新

2 回复
数组项中属性的赋值是不会刷新UI的,可以参考使用 [@ObjectLink](/user/ObjectLink)和[@Observed](/user/Observed) 类装饰器
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5#%E5%AF%B9%E8%B1%A1%E6%95%B0%E7%BB%84

更多关于HarmonyOS 鸿蒙Next 更新了Array中的某个属性,但UI没有进行对应的更新的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next更新了Array中的某个属性但UI没有进行对应更新的问题,这通常是因为@State只监听数组的地址值变化,而不直接监听数组中对象属性的变化。

在HarmonyOS中,当数组中的对象属性发生变化时,由于数组的地址值未变,因此UI不会自动刷新。要解决这个问题,可以采取以下两种方法:

  1. 创建一个临时数组,修改临时数组中的对象属性,然后将临时数组重新赋值给原数组。这样,由于数组地址值发生了变化,UI会重新渲染。
  2. 直接修改数组中的对象属性,然后使用map方法遍历数组并返回一个新数组。虽然数组内容可能未变,但由于返回的是一个新数组,其地址值已改变,同样可以触发UI的重新渲染。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!