@Builder function globalBuilder1(value: string, size: number) {
Text(value)
.fontSize(size)
}
@Builder function globalBuilder2(value: string, size: number) {
Text(value)
.fontSize(size)
.fontColor(Color.Blue)
}
// wrapBuilder(全局builder方法) - 返回一个WrappedBuilder对象
let globalWrapBuilder1: WrappedBuilder<[string, number]> = wrapBuilder(globalBuilder1)
// 放到数组中
let globalWrapBuilder2: WrappedBuilder<[string, number]>[] = [wrapBuilder(globalBuilder1), wrapBuilder(globalBuilder2)]
@Entry
@Component
struct Index8 {
build() {
Column() {
globalBuilder1('我是通过全局builder传入的', 20)
globalWrapBuilder1.builder('我是通过wrapBuilder传入的', 25)
Column() {
ForEach(globalWrapBuilder2, (item: WrappedBuilder<[string, number]>) => {
item.builder('我是通过遍历WrappedBuilder传入的', 20)
})
}
.margin({top: 50})
}
}
}
总结:
1、参数只能是全局builder方法
2、返回一个WrappedBuilder对象,其builder属性方法只能在struct内使用
3、可以用循环来进行不同@Builder函数的渲染