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刷新问题
992浏览 • 1回复 待解决
HarmonyOS 数据刷新问题
1010浏览 • 1回复 待解决
HarmonyOS @builder方法ui不刷新
1760浏览 • 1回复 待解决
HarmonyOS 组件刷新问题
1024浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
1591浏览 • 1回复 待解决
HarmonyOS 页面刷新问题
1393浏览 • 1回复 待解决
HarmonyOS webview刷新问题
1108浏览 • 1回复 待解决
HarmonyOS 组件下拉刷新问题
1436浏览 • 1回复 待解决
HarmonyOS UI不刷新问题
1101浏览 • 1回复 待解决
HarmonyOS swiper数据刷新问题
917浏览 • 1回复 待解决
HarmonyOS 页面跳转刷新问题
2635浏览 • 1回复 待解决
HarmonyOS UI 未刷新问题
1696浏览 • 1回复 待解决
NativeWindowFlushBuffer接口刷新问题
2746浏览 • 1回复 待解决
HarmonyOS LazyForEach数据刷新问题
931浏览 • 1回复 待解决
HarmonyOS List item 刷新问题
1775浏览 • 1回复 待解决
HarmonyOS ForEach列表刷新问题
1249浏览 • 1回复 待解决
HarmonyOS 页面数据刷新问题
1570浏览 • 1回复 待解决
HarmonyOS ForEach创建视图刷新问题
845浏览 • 1回复 待解决
HarmonyOS 装饰器不刷新问题
1152浏览 • 1回复 待解决
HarmonyOS使用Refresh下拉刷新问题
1867浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
1311浏览 • 1回复 待解决
HarmonyOS 自定义弹窗刷新问题
965浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
2013浏览 • 2回复 待解决