HarmonyOS鸿蒙Next中多层嵌套类对象监听

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS鸿蒙Next中多层嵌套类对象监听

介绍

本示例介绍使用@Observed装饰器和@ObjectLink装饰器来实现多层嵌套类对象属性变化的监听。

demo详情链接

https://gitee.com/scenario-samples/variable-watcher

3 回复

兄弟,链接挂了。 /doge/

更多关于HarmonyOS鸿蒙Next中多层嵌套类对象监听的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,多层嵌套类对象监听可以通过@Observed@ObjectLink装饰器实现。@Observed用于标记需要被观察的类,@ObjectLink用于在子组件中绑定父组件的被观察对象。当被观察对象的属性发生变化时,系统会自动更新相关UI。

例如,定义一个多层嵌套类:

@Observed
class InnerClass {
  value: string = '';

  constructor(value: string) {
    this.value = value;
  }
}

@Observed
class OuterClass {
  inner: InnerClass;

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

在组件中使用@ObjectLink绑定嵌套对象:

@Component
struct ChildComponent {
  @ObjectLink inner: InnerClass;

  build() {
    Text(this.inner.value)
  }
}

@Component
struct ParentComponent {
  @State outer: OuterClass = new OuterClass(new InnerClass('Initial Value'));

  build() {
    Column() {
      ChildComponent({ inner: this.outer.inner })
      Button('Change Value').onClick(() => {
        this.outer.inner.value = 'New Value';
      })
    }
  }
}

当点击按钮时,ChildComponent中的Text会自动更新为New Value

在HarmonyOS鸿蒙Next中,多层嵌套类对象的监听可以通过@Observed@ObjectLink装饰器实现。@Observed用于标记可观察的类,而@ObjectLink用于在子组件中引用父组件的观察对象。当嵌套对象发生变化时,系统会自动触发UI更新。例如,父组件使用@Observed标记嵌套对象,子组件通过@ObjectLink引用该对象,实现对多层嵌套对象的监听与响应。

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