HarmonyOS ArkTS学习-状态管理-@Observed和@ObjectLink
参加文献
使用场景
@Observed和@ObjectLink用于嵌套对象的双向数据同步。
@Observed用于装饰类。
@ObjectLink用于装饰对象的属性。
@State的局限
@Sate可以检测到装饰对象的变化,但是无法检测到嵌套的属性变化。代码示例如下:
//@Observed和@ObjectLink嵌套类对象属性变化
//在这个用例中 说明@State不能同步嵌套的属性
class AClass{
public a: number;
public obj:BClass;
constructor(a:number,obj:BClass) {
this.a = a;
this.obj=obj;
}
}
class BClass{
public b:string;
constructor(b:string) {
this.b = b;
}
}
@Entry
@Component
struct Main{
objB:BClass = new BClass('hello');
@State objA:AClass = new AClass(10,this.objB);
build(){
Row(){
Column(){
Text(`objA.a = ${
this.objA.a}`)
.fontSize(30)
Text(