HarmonyOS 为什么运行结果是parent child parent 能解释一下吗

运行代码如下:

@Component
struct Child {
  label: string = `Child`
  @Builder customBuilder() {}
  @Builder customChangeThisBuilder() {}
  @BuilderParam customBuilderParam: () => void = this.customBuilder;
  @BuilderParam customChangeThisBuilderParam: () => void = this.customChangeThisBuilder;
  build() {
    Column() {
      this.customBuilderParam()
      this.customChangeThisBuilderParam()
    }
  }
}

@Entry
@Component
struct Parent {
  label: string = `Parent`
  @Builder componentBuilder() {
    Text(`${this.label}`)
  }
  build() {
    Column() {
      this.componentBuilder()
      Child({ customBuilderParam: this.componentBuilder, customChangeThisBuilderParam: ():void=>{this.componentBuilder()} })
    }
  }
}
HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

第一个Parent应该比较好理解,就是@Entry Component的componentBuilder执行的结果。

第二个Child和第三个Parent是调自定义组件执行的结果,第一个参数customBuilderParam是将父组件中定义的函数传递给子组件,并在子组件中调用,所以执行的label是Child,就输出了Child;第二个参数是用箭头函数将父组件执行的结果传递,所以输出Parent。

分享
微博
QQ
微信
回复
7天前
相关问题
10对-3取余结果是1还是-2?
3762浏览 • 1回复 待解决
一下 ArkTS中math库个?
3411浏览 • 2回复 待解决
前辈们能讲一下如何看polardb代码?
2639浏览 • 1回复 待解决