HarmonyOS BuilderParam传入的Builder方法刷新问题

自定义组件中封装了通用逻辑,希望对外暴露一个builder参数并传递这些内部状态来让使用方自定义布局,类似React Native的构建组件的方法,写法如下:

@Component
export struct MyComp {
  @BuilderParam content: (count: number) => void
  @State counter: number = 0

  build() {
    Stack() {
      this.content(this.counter)
    }.onClick(() => {
      this.counter++
    })
  }
}

// 使用方
MyComp({ content: this.test })

@Builder
test(count: number) {
  Text(count.toString()).fontColor(Color.Red)
}

发现这种情况下不会刷新,应该如何实现这种需求?

HarmonyOS
2025-01-09 14:07:16
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

参考示例:

@Component
struct MyComp {
  @Builder
  cBuilder() {
  }

  @BuilderParam c: () => void = this.cBuilder
  @Prop counter: number = 0

  build() {
    Stack() {
      Text(this.counter.toString())
    }
    .height('20%')
    .width('20%')
    .onClick(() => {
      this.counter++
    })
  }
}

@Builder
function test(count: number) {
  Text(count.toString()).fontColor(Color.Red)
}

@Entry
@Component
struct Index {
  @State text: number = 1

  build() {
    Column() {
      MyComp({ counter: this.text }) {
        Column() {
          test(this.text)
        }
      }
    }
  }
}

@Builder和@BuilderParam官方文档可参考尾随闭包初始化组件:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-builderparam-V5#尾随闭包初始化组件

分享
微博
QQ
微信
回复
2025-01-09 16:34:39
相关问题
HarmonyOS @Builder UI刷新问题
348浏览 • 1回复 待解决
HarmonyOS 组件刷新问题
408浏览 • 1回复 待解决
HarmonyOS 页面刷新问题
708浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
950浏览 • 1回复 待解决
HarmonyOS webview刷新问题
393浏览 • 2回复 待解决
HarmonyOS 数据刷新问题
340浏览 • 1回复 待解决
HarmonyOS @builder方法ui不刷新
548浏览 • 1回复 待解决
HarmonyOS 组件下拉刷新问题
913浏览 • 1回复 待解决
HarmonyOS 页面数据刷新问题
293浏览 • 1回复 待解决
HarmonyOS List item 刷新问题
1144浏览 • 1回复 待解决
HarmonyOS ForEach列表刷新问题
462浏览 • 1回复 待解决
HarmonyOS LazyForEach数据刷新问题
298浏览 • 1回复 待解决
HarmonyOS UI 未刷新问题
961浏览 • 0回复 待解决
HarmonyOS UI不刷新问题
437浏览 • 1回复 待解决
HarmonyOS 页面跳转刷新问题
1464浏览 • 1回复 待解决
HarmonyOS swiper数据刷新问题
287浏览 • 1回复 待解决
NativeWindowFlushBuffer接口刷新问题
2191浏览 • 1回复 待解决
HarmonyOS ForEach创建视图刷新问题
326浏览 • 1回复 待解决
HarmonyOS使用Refresh下拉刷新问题
1229浏览 • 1回复 待解决
HarmonyOS 装饰器不刷新问题
521浏览 • 1回复 待解决
HarmonyOS 自定义弹窗刷新问题
314浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
714浏览 • 1回复 待解决