OnKeyPressイベントリスナーをテキスト入力に追加したので、ユーザーが[完了]をクリックするか、電話のキーボードで[Enter]をクリックすると、searchProducts関数が呼び出されます。 onSubmitタイプのイベントリスナーオプションを期待していましたが、そのようなものを見つけることができなかったので、今は押された各キーを調べるだけに頼っています。 'j'や 'x'などの文字キーが押されると、onKeyPressイベントがトリガーされ、searchProducts関数が呼び出されます。ただし、マウスで[完了]をクリックしてもORキーボードのEnterキーを押しても何も起こりません。これを取得して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"
/>
onSubmitEditing を使用できます。これは次のとおりです。
テキスト入力の送信ボタンが押されたときに呼び出されるコールバック。 multiline = {true}が指定されている場合は無効です。
キーボードの「完了」ボタンを押した後に呼び出されます。
onKeyPressは、リターンキーを押したときにトリガーされる必要があります。このページに別のイベントがあり、このイベントがトリガーされないようにするイベントがあるかどうかを確認してください。
event.stopPropagation()