HarmonyOS 鸿蒙Next @Builder中想要改变参数值应该如何做?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next @Builder中想要改变参数值应该如何做? 拿文档的示例举例:

可以实现由父组件传递给@Builder并重新渲染UI,

现在我想实现,在@Builder中更改传过来的参数值,并且重新渲染UI,请问有什么好的实现办法吗?

@Entry
@Component
struct BuilderPage {
  @State str: string = "默认的"
  @State num: number = 0

  build() {
    Column() {
      Text(`点击变化值-按引用传递参数\n${this.str}: ${this.num}`).fontSize(27).onClick(() => {
        this.str = '刘小宇'
        this.num = 24
      })
      textClick({ str: this.str, num: this.num })
    }.width('100%').margin({ top: 100 })
  }
}

// 强制的,要定义一个class里面放要接受参数的字段名
class Tmp {
  str: string = ''
  num: number = 0
}

[@Builder](/user/Builder)
function textClick($$: Tmp) {
  Row() {
    Text(`${$$.str}: ${$$.num}`).fontSize(20).margin({ top: 15 }).onClick(() => {
      $$.num = 10
    })
  }
}

更多关于HarmonyOS 鸿蒙Next @Builder中想要改变参数值应该如何做?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

楼主解决了吗

更多关于HarmonyOS 鸿蒙Next @Builder中想要改变参数值应该如何做?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这是目前没有具体内容的区域。

希望HarmonyOS能继续加强在安全性方面的研发,保护用户的隐私和数据安全。

根据规则无法改变,可以使用@Component组件来实现

文档中表示不可以改变参数值,有什么其他的办法,强行的更新这个参数值吗

cke_43166.png

在HarmonyOS(鸿蒙)系统中,如果你在使用@Builder注解时想要改变参数值,通常这涉及到构建一个对象时动态地设置其属性。@Builder注解是Lombok库提供的一种便捷方式,用于减少样板代码,使得对象的构建过程更加清晰和流畅。

在HarmonyOS中,如果你已经有一个使用了@Builder注解的类,改变参数值的过程大致如下:

  1. 调用Builder:首先,你需要调用该类的builder()静态方法,这会返回一个Builder实例。

  2. 设置参数:通过Builder实例提供的方法设置你想要的参数值。这些方法通常是withXxx(Yyy value)形式,其中Xxx是属性名,Yyy是属性类型。

  3. 构建对象:最后,调用build()方法来创建并返回构建好的对象实例。

例如,假设有一个Person类,它有一个name属性和一个age属性,并且使用了@Builder注解:

Person person = Person.builder()
                      .name("John Doe")
                      .age(30)
                      .build();

如果你想要改变nameage的值,只需在调用build()之前重新设置它们即可。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部