HarmonyOS 鸿蒙Next wrappedBuilder封装全局@Builder里是一个自定义组件,怎么向这个组件传参并触发UI

HarmonyOS 鸿蒙Next wrappedBuilder封装全局@Builder里是一个自定义组件,怎么向这个组件传参并触发UI

builder:WrappedBuilder <> = wrapBuilder(Test1)
[@Builder](/user/Builder)
function Test1(aa:BadgeBean) {
  TestComp({ bean:aa })
}
@Component
struct TestComp{
  @Prop bean :BadgeBean
  build() {
    Column(){
      Text(`${this.bean?.badgeNum}`)
      Button('+1')
        .onClick(=>{
          console.error(JSON.stringify(this.bean))
          this.bean.notifyBadgeChange(this.bean.badgeNum++)
        })
    }
  }
}

这里输出的日志显示的是空,是不是引用传参只能在builder里使用不能往下传


更多关于HarmonyOS 鸿蒙Next wrappedBuilder封装全局@Builder里是一个自定义组件,怎么向这个组件传参并触发UI的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next wrappedBuilder封装全局@Builder里是一个自定义组件,怎么向这个组件传参并触发UI的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,如果你使用Next wrappedBuilder封装全局@Builder,并且@Builder中包含一个自定义组件,向该组件传参并触发UI更新的过程通常涉及以下几个步骤:

  1. 定义自定义组件的属性:在自定义组件的Java类(注意不是Java语言本身,而是指鸿蒙的组件类定义)中,使用@Entry注解的类中定义需要的属性,这些属性将用于接收外部传入的参数。

  2. @Builder中设置属性:在@Builder注解的方法中,通过参数形式接收外部传入的参数,并在构建组件实例时将这些参数赋值给自定义组件的属性。

  3. 触发UI更新:一旦属性被设置,如果属性变化需要反映在UI上,确保自定义组件内部实现了属性变化监听逻辑,或者通过调用组件的刷新方法(如refresh(),如果存在此类方法)来手动触发UI更新。

  4. 使用封装好的wrappedBuilder:在需要创建和展示自定义组件的地方,使用封装好的wrappedBuilder,并传入必要的参数。

如果以上步骤正确实施,自定义组件应该能够接收到参数并正确更新UI。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部