问题场景这个只能单向传递,也就是说只允许一个祖先组件来完成变量的更新,孙子组件只能读取不能更改如果我的子孙组件想要改变该数据变量,请问有什么好的办法没?逐层传递回祖先再改变太繁杂了@Provide装饰器和@Consume装饰器,可以实现与后代组件双向同步。不需要逐层传递回祖先。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-provide-and-consume-V5@Component struct CompD { // @Consume装饰的变量通过相同的属性名绑定其祖先组件CompA内的@Provide装饰的变量 @Consume reviewVotes: number; build() { Column() { Text(`reviewVotes(${this.reviewVotes})`) Button(`reviewVotes(${this.reviewVotes}), give +1`) .onClick(() => this.reviewVotes += 1) } .width('50%') } } @Component struct CompC { build() { Row({ space: 5 }) { CompD() CompD() } } } @Component struct CompB { build() { CompC() } } @Entry @Component struct CompA { // @Provide装饰的变量reviewVotes由入口组件CompA提供其后代组件 @Provide reviewVotes: number = 0; build() { Column() { Button(`reviewVotes(${this.reviewVotes}), give +1`) .onClick(() => this.reviewVotes += 1) CompB() } } }
问题场景
这个只能单向传递,也就是说只允许一个祖先组件来完成变量的更新,孙子组件只能读取不能更改
如果我的子孙组件想要改变该数据变量,请问有什么好的办法没?逐层传递回祖先再改变太繁杂了
@Provide装饰器和@Consume装饰器,可以实现与后代组件双向同步。不需要逐层传递回祖先。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-provide-and-consume-V5