#鸿蒙通关秘籍#如何确保@Observed装饰的属性变化在复杂对象中被正确监听?

HarmonyOS
2024-12-04 13:20:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
系统小先锋

为保证@Observed装饰的属性变化在复杂对象中可以被正确监听,请遵循以下指南:

  1. 为每个非简单类型的属性(如类实例或复杂对象)都使用@Observed装饰。
  2. 在子组件中用@ObjectLink来指向@Observed装饰类实例。
@Observed
class InnerClass {
  public data: number;

  constructor(data: number) {
    this.data = data;
  }
}

@Observed
class OuterClass {
  public inner: InnerClass;

  constructor(inner: InnerClass) {
    this.inner = inner;
  }
}

@Component
struct SomeComponent {
  @ObjectLink innerObj: InnerClass;

  build() {
    Button('Change Data').onClick(() => {
      this.innerObj.data += 1; 
    })
  }
}

使用该策略,所有变化都将被监听。

分享
微博
QQ
微信
回复
2024-12-04 15:24:14
相关问题
如何监听数组内对象属性变化
2472浏览 • 1回复 待解决