由于某种原因,向 TextInput 添加值会更改字体粗细

Posted

技术标签:

【中文标题】由于某种原因,向 TextInput 添加值会更改字体粗细【英文标题】:Adding a value to a TextInput changes the font-weight for some reason 【发布时间】:2021-11-28 05:54:21 【问题描述】:

我试图在用户输入时格式化日期,但是当我添加值字段 (value=this.state.dob) 时,样式会更改为更粗的字体粗细(有时会更改为右侧字体重量中间打字)。它似乎真的来自我尝试将它添加到此页面的其他输入的值字段,它做同样的事情。

  <TextInput
        placeholder="JJ/MM/AAAA"
        keyboardType='number-pad'
        onChangeText=(text) => this._onChangeDate(text)
        name="dob"
        style=styles.textBox
        value=this.state.dob //Just removing this work but I can't liveformat the date anymore 
        maxLength=10
   />

_onChangeDate = (value) => 
    this.setState(
        dob: this.liveFormatDate(value),
    )  


liveFormatDate 返回一个字符串,在需要时添加斜杠丢弃字母等

How it looks right now

How it should look like (when there are 6 characters it looks like this) 我没有修改两个截图之间的代码

【问题讨论】:

嗯,我使用与用户键入相同的模式来格式化电话号码,但没有看到相同的问题。你是如何创造你的风格的?你在用StyleSheet.create吗? 您好我已经通过在样式中添加一个 font-weight 属性解决了这个问题(如果我没记错的话,font-weight:"normal" 这是默认值。)所以行为是真的很奇怪。 太棒了!!很高兴你明白了:) 【参考方案1】:

解决方案是在样式中添加权重属性 (font-weight: "normal")。虽然我不知道为什么字体粗细一直在变化,但我不知道是什么原因造成的。

【讨论】:

以上是关于由于某种原因,向 TextInput 添加值会更改字体粗细的主要内容,如果未能解决你的问题,请参考以下文章

React Native TextInput 不允许输入/文本更改

由于某种原因无法使用更改方法的无线电输入

如何更改 JavaMail 端口

PHP Form 没有向 mySQL 数据库添加数据?

如何在 Flex 3 中的 TextInput 上的 keyDownHandler 上设置文本属性

我正在以编程方式添加滚动,但由于某种原因它没有从一开始就开始