精通网站建设工资多少,vs2017网站开发,磁力最好用的搜索引擎,中山制作网站的公司吗TextInput用法就不多讲了#xff0c;主要记录下遇到的一个怪问题。 背景#xff1a;项目需要开发一个充值页面#xff0c;需要一个输入框#xff0c;然后几个按钮#xff0c;输入框是允许用户自己输入任意金额#xff0c;按钮是可以让用户快捷选择金额。那么问题来了主要记录下遇到的一个怪问题。 背景项目需要开发一个充值页面需要一个输入框然后几个按钮输入框是允许用户自己输入任意金额按钮是可以让用户快捷选择金额。那么问题来了一般来说是改变文本框的值就可以了。比如这样 TextInputplaceholderTextColor#ccccccunderlineColorAndroidtransparentkeyboardType{numeric}style{styles.inputStyle}value {this.state.money}onChangeText{(text)this.changeMoney(text)}
/ 然后在其他需要改变value值的地方这样写 checkMoney(text) {this.setState({money: text});
}乐观的情况是我可以点击按钮可以改变文本框的值也可以用户自己输入 但是但是但是重点来了它根本不让你输入光标一直闪烁。 看了文档给的解释是 TextInput是一个受约束的(Controlled)的组件意味着如果提供了value属性原生值会被强制与value属性保持一致。在大部分情况下这都工作的很好 不过有些情况下会导致一些闪烁现象——一个常见的原因就是通过不改变value来阻止用户进行编辑。如果你希望阻止用户输入 可以考虑设置editable{false}如果你是希望限制输入的长度可以考虑设置maxLength属性这两个属性都不会导致闪烁。 然而加上没有什么卵用。 无奈只有再去找看看有没有什么可用的属性没想到被我找到了激动的要写一篇文章来记录下。 提供一个文本框中的初始值。当用户开始输入的时候值就可以改变。 在一些简单的使用情形下如果你不想用监听消息然后更新value属性的方法来保持属性和状态同步的时候就可以用defaultValue来代替。描述的还是云里雾里的但是用defaultValue来代替value就能完美完成我的期望了。