gpt4 book ai didi

android - 关闭键盘时调用 onSubmitEditing 两次

转载 作者:太空狗 更新时间:2023-10-29 13:56:57 24 4
gpt4 key购买 nike

当按下搜索按钮关闭键盘时,我想从 TextInput 获取当前文本。为了获取文本,我使用了 onSubmitEditing 但只有当我将 returnKeyType 设置为“search”时它才会被调用两次。这是一个代码 fragment 。

  render() {
return (
<View style={{flex:1, justifyContent:'center'}}>
<TextInput
style={{alignSelf:'stretch'}}
onChangeText={(searchInput) => this.setState({ searchInput }) }
placeholder='Search'
returnKeyType='search'
onFocus={() => console.log('onFocus')}
onBlur={() => console.log('onBlur')}
onChange={(event) => console.log('onChange text: ' + event.nativeEvent.text)}
onEndEditing={(event) => console.log('onEndEditing text: ' + event.nativeEvent.text)}
onSubmitEditing={(event) => console.log('onSubmitEditing text: ' + event.nativeEvent.text)}
/>
</View>
);
}

它只发生在 android 中(onSubmitEditing 在 iOS 中被调用一次)。此外,当我使用 RN 0.24 时,onSubmitEditing 被调用一次,但在最新版本 (0.30) 中被调用两次。这是预期的行为吗?有没有办法在按下搜索按钮关闭键盘时获取文本一次?

最佳答案

使用 textinput.blur 解决这个问题

<TextInput
ref={component => this._textInput = component}
onSubmitEditing={this._onSubmitEditing.bind(this)}
onEndEditing={this._onPressSearch.bind(this)}
returnKeyType='search'
style={styles.inputText}/>

_onSubmitEditing(){
this._textInput.blur();
}
_onPressSearch(event){
console.log(event.nativeEvent.text);
}

关于android - 关闭键盘时调用 onSubmitEditing 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com