多个 @BuilderParam 传参

在这里插入图片描述
多个 @BuilderParam 传组件 需创建@Builder
以对象方式传@Builder传入UI
增加模块代码
老师只是简单演示了下代码功能,自己摸索,错误百出

@Preview
@Component struct c1_ui{
  @State book1 : string = '说明'
  @State people1 : number = 0
  @State complete1 : number = 0
  @State img2 : ResourceStr = $r('app.media.ic_public_car')
  @State name2 : string = '名称'
  @State price2 : number = 0

  @BuilderParam ctbd1 : () => void = this.dfbd1
  @Builder dfbd1 (){  //  无组件传入
    Column(){
      Text(`${this.book1}`)
      Blank().layoutWeight(1)
      Text(){
        Span(`${this.people1}`).fontColor('#f00')
        Span(' 人参与')
      }.fontSize(10)
      Text(`¥${this.price2.toFixed(2)}`){
        Span('完成度')
        Span(`${this.complete1}%`).fontColor('#f00')
      }.fontSize(10)
    }.justifyContent(FlexAlign.SpaceBetween).height('100%')
  }
  @BuilderParam ctbd2 : () => void = this.dfbd2
  @Builder dfbd2 (){  //  无组件传入
    Column(){
      Image(this.img2).width('35%')
      Blank().layoutWeight(1)
      Text(`${this.name2}`).fontSize(12)
      Text(`¥${this.price2.toFixed(2)}`).fontSize(12)
    }.height('100%')
  }

  build(){
    Row(){
      this.ctbd1()
      this.ctbd2()
    }.width('25%').height('10%').justifyContent(FlexAlign.SpaceBetween)
  }
}

在这里插入图片描述
构建模块还没出大问题
问题出在,我想左边重构,右边默认
传参搞了好久
增加页面代码

@Builder ui_c1(){
    Column(){
      Image($r('app.media.ic_public_arrow_right')).width('15%')
    }
  }

//	上面先构建Builder 下面调用传入

com.c1_ui({
            ctbd1:this.ui_c1, //  传组件
            img2:$r('app.media.12_2'),
            name2:'腰带',
            price2:499
          })  //  试了好久才试出来传参 搞了一堆垃圾代码

在这里插入图片描述
哇100课了,不容易,

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐