HarmonyOS 关于状态变量深层次响应的问题

当状态变量是一个对象时,只有对象本身修改或者对象的第一级属性修改,才会触发响应更新UI,如果对象的第一级属性是另一个对象,这里暂且称为深层次对象,那么修改深层次对象的属性,如何做到响应式的效果?试着用文档中的@Observed装饰器测试,但是这个装饰器只能用在父子组件传递参数时生效,如果是在同一个组件中,如何做到深层次对象的响应式效果?

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

使用@ObservedV2装饰的类中被@Trace装饰的属性具有被观测变化的能力,当该属性值变化时,会触发该属性绑定的UI组件刷新。在嵌套类中使用@Trace装饰的属性具有被观测变化的能力。具体代码详情:

@ObservedV2
class Son {
  @Trace age: number = 100;
}
class Father {
  son: Son = new Son();
}
@Entry
@Component
struct Index {
  father: Father = new Father();
  build() {
    Column() {
      // 当点击改变age时,Text组件会刷新
      Text(`${this.father.son.age}`)
        .onClick(() => {
          this.father.son.age++;
        })
    }
  }
}
分享
微博
QQ
微信
回复
7天前
相关问题
HarmonyOS 如何进行深层次数据更新
460浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
563浏览 • 1回复 待解决
关于状态变量@state必须知道
1297浏览 • 1回复 待解决
HarmonyOS constraintSize支持状态变量
137浏览 • 1回复 待解决
ArkTS中如何监听状态变量变化?
1106浏览 • 1回复 待解决
状态变量和常规变量有什么区别?
587浏览 • 2回复 待解决