子组件修改父组件的问题,求助大佬
这里说法是不是矛盾的,是我理解能力不够吗?测试代码,也是,父组件修改子组件能刷新,子组件修改父组件没反应,那个大佬能帮我看看是不是我代码有问题,还是文档有问题:
@Observed
class ClassA {
public value: number;
constructor(value: number) {
this.value = value;
}
}
class ClassB {
public a: ClassA;
constructor(a: ClassA) {
this.a = a;
}
}
class ClassC {
public b: ClassB;
constructor(b: ClassB) {
this.b = b;
}
}
@Component
struct ViewA {
label: string = 'ViewA';
@ObjectLink a: ClassA;
build() {
Row() {
Column({space:10}) {
Text(`[${this.label}] this.a.value = ${this.a.value}`)
.fontSize(20)
Button(`ViewA: this.a.value add 1`)
.backgroundColor('#ff7fcf58')
.onClick(() => {
this.a.value += 1
console.log('this.a.value:' + this.a.value)
})
}
.width("100%")
}
}
}
@Entry
@Component
struct ViewB {
@State child: ClassC = new ClassC(new ClassB(new ClassA(10)));
build() {
Column({space:10}) {
ViewA({ a:this.child.b.a })
Text(`ViewB:${this.child.b.a.value}`)
Button(`ViewB: this.c.b.a.value add 10`)
.backgroundColor('#ff7fcf58')
.onClick(() => {
this.child.b.a.value += 10
console.log('this.child.b.a.value:' + this.child.b.a.value)
})
}
}
}
文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
本文参与了思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。
公豹你好,子组件修改父组件的行为需要遵循特定的规则和设计模式,可能需要进一步检查代码的逻辑和组件之间的通信方式是否正确,也可以参考鸿蒙开发的相关文档和示例来查找更准确的解决方法。