我有一个奇怪的问题,在一个特殊情况下手动模糊和输入将无效。
如果我单击第一个输入,然后使用键盘上的提交键聚焦第二个输入,当文本长度达到2时,第二个输入上的onChangeText函数将模糊。
但是如果我通过直接点击第一个输入来聚焦第二个输入,那么onChangeText中调用的模糊方法不会模糊第二个输入,键盘将保持打开状态。
onChangeText(text) {
if(text.length === 2) this.secondInput.blur();
}
onSubmitFirst() {
this.firstInput.blur();
this.secondInput.focus();
}
render() {
return (
<TextInput ref={ref => {this.firstInput = ref} onSubmitEditing={this.onSubmitFirst}/>
<TextInput ref={ref => {this.secondInput = ref} onChangeText={this.onChangeText}/>
)
}
我也尝试过使用Keyboard.dismiss(); dismissKeyboard();如果第一个输入也是聚焦的,那么第二个输入也不会模糊。我需要能够通过代码模糊此输入,以防止键盘保持打开状态。
修改
似乎.blur()只有在手动调用.focus()时才会起作用。
如果我添加onBlur = {()=&gt; this.secondInput.focus()}到第一个textinput .blur()方法即使通过点击跳转到下一个输入也会有效