Skip to content

wrapBuilder

注意

  1. wrapBuilder 是 @Builder的一个集合体,单独写@Builder也没问题

  2. wrapBuilder 只能用在全局@Builder 的类上,局部的用不了

语法结构

ts
// 封装所用的 string 就是参数类型
let GlobalBuilder: WrappedBuilder<[string]>[] = [
  wrapBuilder(你自己的写的第1个全局Builder),
  wrapBuilder(你自己的写的第2个全局Builder),
];
// 使用所用的
ForEach(GlobalBuilder, (item: WrappedBuilder<[string]>, index) => {
  item.builder("测试有没有");
});

注意

  1. 两个全局 Builder 的参数类型必须一致

代码

ts
// 传递参数 内部值类型
@Builder
function showParams(message: string) {
    Text(message).fontSize(22).fontColor(Color.Red)
}

// 传递参数 内部值类型
@Builder
function showParams2(message: string) {
    Column() {
        Text(message).fontSize(22).fontColor(Color.Green)
        Text(message).fontSize(26).fontColor(Color.Green)
    }
}

// 封装所用的
let GlobalBuilder: WrappedBuilder<[string]>[] = [
    wrapBuilder(showParams),
    wrapBuilder(showParams2)
]

@Entry
@Component
struct Index2 {
    build() {
        Column() {
            ForEach(GlobalBuilder, (item: WrappedBuilder<[string]>, index) => {
                item.builder("测试有没有")
            })
        }
    }
}