刚刚接触鸿蒙app开发不久,发现数据复杂数据模型@State没法关联内部对象下的字段更新,进行了小白撞墙式的一大波尝试,发现如下解决办法,下面是示例代码,Test对象中包含了Test2对象,只用@State申明Test对象是达不到动态更新Test2中字段的效果的,必须还要对Test中的Test2对象引用进行@State申明,都是小白探索,别的不多说,直接上代码:
@Entry
@Component
struct Index {
@State test: Test = new Test();
@State test2: Test2 = new Test().test;
build() {
Row() {
Column() {
// @ts-ignore
Text(this.test2.test2)
.fontSize(50)
.fontWeight(FontWeight.Bold);
Button("测试一下").onClick(() => {
this.test2.test2 = "123";
});
}
.width('100%')
}
.height('100%')
}
}
class Test {
public test: Test2 = new Test2();
}
class Test2 {
public test2: String = "abc";
}
关键代码:
@State test: Test = new Test();
@State test2: Test2 = new Test().test;