HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数

HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数

bindSheet中的builder,如何传入参数

如果有一个 builder 如下

class Tmp {
  paramA1: string = ''
}

@Builder function overBuilder(params: Tmp) {
  Row() {
    Text(`UseStateVarByReference: ${params.paramA1} `)
  }
}

overBuilder和组件不在一个 ArkTs 文件中,此时bindSheet如何传入参数params: Tmp


更多关于HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中bindSheet中的builder,如何传入参数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


参考此Demo:

//SheetDemo .ets
import { sheetBuilder } from './MyBuilder'

@Entry
@Component
struct SheetDemo {
  @State isShowSheet: boolean = false
  private items: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  build() {
    Column {

      Button('Open Sheet').width('90%').height('80vp')
        .onClick(() => {
          this.isShowSheet = !this.isShowSheet
        })
        .bindSheet($$this.isShowSheet,sheetBuilder(this.items), {
          detents: [SheetSize.MEDIUM, SheetSize.LARGE, 600],
          preferType: SheetType.BOTTOM,
          title: { title: '嵌套滚动场景' },
        })
    }.width('100%').height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

//MyBuilder.ets
@Builder
export function sheetBuilder(items:number[]) {
  Column {
    // 第一步:自定义滚动容器
    List({ space: '10vp' }) {
      ForEach(items, (item: number) => {
        ListItem() {
          Text(String(item)).fontSize(16).fontWeight(FontWeight.Bold)
        }.width('90%').height('80vp').backgroundColor('#ff53ecd9').borderRadius(10)
      })
    }
    .alignListItem(ListItemAlign.Center)
    .margin({ top: '10vp' })
    .width('100%')
    .height('900px')
    // 第二步:设置滚动组件的嵌套滚动属性
    .nestedScroll({
      scrollForward: NestedScrollMode.PARENT_FIRST,
      scrollBackward: NestedScrollMode.SELF_FIRST,
    })

    Text("非滚动区域")
      .width('100%')
      .backgroundColor(Color.Gray)
      .layoutWeight(1)
      .textAlign(TextAlign.Center)
      .align(Alignment.Top)
  }.width('100%').height('100%')
}
回到顶部