HarmonyOS @State无法更新组件的文本

操作步骤:

1、声明一个变量,如下:

@State amountText : string = ""

2、在组件中使用以上变量,如下:

Row() {
  // 图标
  Column() {
    Image($r('app.media.icon_dollar'))
      .width('24vp')
      .height('24vp')
      .fillColor($r('app.color.icon_label'))
  }
  .justifyContent(FlexAlign.Center)

  // 输入
  TextInput({ text: this.amountText, placeholder: "0.00" })
    .flexShrink(1)
    .placeholderColor($r('app.color.placeholder'))
    .fontColor($r('app.color.text_highlight'))
    .fontSize($r('app.float.fontsize_big'))
    .backgroundColor($r('app.color.background_highlight'))
    .type(InputType.NUMBER_DECIMAL)
    .onChange((value: string) => {
      if (value.length == 0) {
        return
      }
      this.amount = Number(value)
    })

}
.width('90%')
.height('80vp')
.backgroundColor($r('app.color.background_highlight'))
.border({ radius: $r('app.float.radius_edit') })
.padding({ left: 10 })

3、手动输入数字后,再执行this.amountText='';无法及时更新TextInput组件。

HarmonyOS
2024-12-25 13:15:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

上述代码需要$$进行双向同步,TextInput({ text: $$this.amountText, placeholder: “0.00” }) ,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-two-way-sync-V5

分享
微博
QQ
微信
回复
2024-12-25 15:01:44
相关问题
HarmonyOS LazyForEach不会更新@State
302浏览 • 1回复 待解决
文本在web组件无法展示
2339浏览 • 1回复 待解决
callback无法成功更新UI
2102浏览 • 1回复 待解决
webviewControllerloadData无法显示长文本
2048浏览 • 1回复 待解决
HarmonyOS 组件@State最小化build监听VM
534浏览 • 1回复 待解决