如何在自定义函数中创建一个UI组件?

如何在自定义函数中创建一个UI组件

阅读 318
1 个回答

可以使用@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) 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进