为什么"输入"密钥不会在React Native中触发onKeyPress?

时间:2018-05-29 12:25:42

标签: android react-native

我已经在文本输入中添加了一个onKeyPress事件监听器,这样当用户点击完成或者去或者输入"在手机键盘上它会调用我的searchProducts功能。我希望有一个onSubmit类型的事件监听器选项,但是无法找到类似的东西,所以现在我只是简单地检查按下的每个键。当按下字符键时,例如' j'或者' x'它触发onKeyPress事件并调用我的searchProducts函数。但是,当我用鼠标点击完成或点击键盘上的回车键时没有任何反应。如何让它触发onKeyPress事件监听器?

searchProducts = (e) => {
    if (e.nativeEvent.key == "Enter"){
        this.props.searchFunc(this.state.term);
    }
}

<TextInput 
    ref='searchBar'
    style={styles.searchInput} 
    placeholder={placeholder}

    onChangeText={this.searchSuggestions}
    onKeyPress={this.searchProducts.bind(this)}
    underlineColorAndroid="transparent" 
/>

2 个答案:

答案 0 :(得分:4)

您可以使用onSubmitEditing

  

文本输入提交按钮时调用的回调   按下。如果指定了multiline = {true},则无效。

按“完成”后会调用它。键盘上的按钮。

答案 1 :(得分:0)

点击返回键时应触发

onKeyPress,检查此页面中是否有其他事件取消触发该事件 如果是,请使用

event.stopPropagation()