可以使用@Builder装饰器,也称为“自定义构建函数”。自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。可参考如下代码:// xxx.ets class ABuilderParam { paramA1: string = ''; } @Builder function ABuilder($$: ABuilderParam) { Row() { Text(`UseStateVarByReference: ${$$.paramA1} `) } } @Entry @Component struct Parent { @State label: string = 'Hello'; build() { Column({ space: 20 }) { Text(`Parent`) // 在Parent组件中调用ABuilder的时候,将this.label引用传递给ABuilder ABuilder({ paramA1: this.label }) Button('Click me').onClick(() => { // 点击“Click me”后,UI从“Hello”刷新为“ArkUI” this.label = 'ArkUI'; }) } .width('100%') .alignItems(HorizontalAlign.Center) } }
可以使用@Builder装饰器,也称为“自定义构建函数”。自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。可参考如下代码: