// 作用:用于在涉及嵌套对象或数组的场景中进行双向数据同步,注意:ObjectLink修饰符不能用在Entry修饰的组件中
@Component
struct MyComponent {
// 注意,只有被ObjectLink包裹的才能被监听到,否则是无法监听的
@ObjectLink itemObj: Person
build() {
Column() {
Text(JSON.stringify(this.itemObj))
Button('按钮').onClick(() => {
this.itemObj.age++
})
}.width(300).height(100).backgroundColor(Color.Gray)
}
}
interface PersonObj {
id: number
age: number
}
@Observed
class Person {
id: number
age: number
constructor(obj: PersonObj) {
this.id = obj.id
this.age = obj.age
}
}
@Entry
@Component
struct Index {
@State personList: Person[] = [new Person({id: 1, age:1}), new Person({id: 2, age:2})]
build() {
Column() {
ForEach(this.personList, (item: Person) => {
MyComponent({itemObj: item})
})
}
}
}
@Observed和@ObjectLink属性(嵌套对象数据可以监听到@ObjectLink包裹类的属性变化)
于 2024-09-03 09:42:31 首次发布