使用react-native的过程中遇到了一个问题,就是在编写TextInput控件的时候,监听控件ChangeText事件,发现在输入中文到一半的时候退掉键盘,这个方法还是会获取到输入到内容,但是实际上UI界面上却并未显示任何文字,所以这就导致获取的文字和界面上显示的不一致。
我的做法是把这个TextInput设置为多行输入然后限制输入的文字数量(这个也是这种解决办法的弊端,同时字体会变小一点,但是后一点可以通过更改style弥补)
multiline = {true}
maxLength = {20}
value = {this.state.indictmentDesc}
onChangeText={(text) => {
item['discription'] = text;
}}
其实还有一种解决办法:
onBlur={(event)=>{
item['name'] = event.nativeEvent.text;
}}
这种方法会有一个严重的问题就是当你取消输入的时候会给TextInput自动填充上一次输入成功的内容。(所以相比之下还是推荐第一种解决办法)
如果哪位大神么有什么好方法欢迎私信,大家共同进步。