写点什么

使用 @Builder 数据刷新后 UI 没有刷新,导致图片错乱怎么解决?

  • 2026-03-05
    北京
  • 本文字数:373 字

    阅读完需:约 1 分钟

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。

问题描述:

如下代码,直接使用 @Builder itemBuild 会导致图片错乱,直接写 Image 就正常。 如果我还是想用 @Builder itemBuild,怎么让复用也正常呢?

解决方案:

定义构建函数(@Builder)默认的按值参数传递方式不支持动态改变组件,当传递的参数为状态变量时,状态变量的改变不会引起 @Builder 方法内的 UI 刷新,要实现 UI 动态刷新需要按引用传递参数

可以参考官方文档中 @Builder 和 @Component 的区别:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkts-8-V5

有两种解决方法:

①按引用传递参数

② 不用 @builder,改为使用自定义组件 @Component 也可以实现需求

参考代码和相关讨论,请点击原帖查看:

https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201164980153582686&fid=0109140870620153026