我爱模板网在学习鸿蒙开发使用@builder装饰器构建函数时传递参数发现改变变量值时页面并没有发生改变,代码如下:
我将状态变量username传递给构建函数作为textInput的value值,同时我希望点击登录按钮输入框的值改变为“MyUsername”,然而事实却是:
点击登录,没有任何反应,其实此时username已经发生了变化。
由于我们给函数传递的是一个基本数据类型,导致我们修改数据时构建函数没反应,怎么解决?
只需要我们在传递参数传递一个引用数据类型,将堆内存地址传递过去,同时构建函数的形参按照ArkTs固定的写法$$并指定参数类型
这样就完美解决了数据改变页面不响应的问题啦~
最后我们总结一下,在使用@builder装饰器构建函数时,希望修改@state状态数据时页面实时响应就需要我们在传递参数时传递一个引用数据类型,然后函数形参使用特定的写法$$来接收,这样就可以实现了