鸿蒙@ObjectLink和@Observed类装饰器

186 阅读1分钟

@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二层的属性变化是无法观察到的。这就引出了@Observed/@ObjectLink装饰器。

定义类,加上@ObServed装饰器

@Observed
export class testClass{
  name:string=''
  age:string=''
}

声明自定义组件,使用@ObjectLink声明变量

@Component
export default struct ObjComp{
  @ObjectLink obj:testClass
    //测试打印
  aboutToAppear(): void {
    Log.info(JSON.stringify(this.obj))
  }

  build() {

  }

}

已经可以看到打印的类

image.png