HarmonyOS TextInput的text属性包含“�”时,输入框内容被异常清空

代码如下:

TextInput({ text: $$this.nickname })// ...... 此处省略其他配置
  .onChange((value: string) => {
    let newValue = value;
    if (value !== undefined && value.length > 6) {
      // ...... 此处省略其他业务
      newValue = value.substring(0, 6);
    }
    this.nickname = newValue;
  })

输入框显示输入最多6个字符,超过6个字符时需要toast提示。输入框输入“11111”,再输入一个emoji表情,超过6个字符emoji被截断,newValue = “11111�”。预期输入框显示“11111�”,但输入框实际表现为被清空了。

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

参考示例:

@Entry
@Component
struct Index {
  @State private inputText: string = ""
  @Prop @Watch('onTextUpdated') text: string = ""
  public maxLength: number = 6

  onTextUpdated() {
    this.inputText = this.sliceTools(this.text, this.maxLength)
  }

  sliceTools(str: string, maxLength: number): string {
    let res = "";
    for (const element of str) {
      console.info('输入:' + element)
      if (res.length < maxLength) {
        res = res + element
      }
    }
    return res;
  }

  build() {
    Column() {
      TextInput({ text: $$this.inputText })
        .onChange((value: string) => {
          this.text = value
        })
    }
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS textInput 如何清空输入框
11浏览 • 1回复 待解决
如何清空文本输入框内容
872浏览 • 1回复 待解决
js如何清空一个input 输入框内容
7774浏览 • 1回复 待解决
HarmonyOS webview输入框遮挡
37浏览 • 1回复 待解决
HarmonyOS 输入框不显示内容
81浏览 • 1回复 待解决
HarmonyOS web中输入框键盘遮住
39浏览 • 1回复 待解决
HarmonyOS TextInput输入内容限制
15浏览 • 1回复 待解决
HarmonyOS TextInput如何阻止其输入内容
47浏览 • 1回复 待解决
HarmonyOS Text加载藏文,显示异常
76浏览 • 1回复 待解决