У меня очень расстраивающая ситуация. Попытка заставить клавиатуру исчезнуть и обнаружить обработчик события onPress в дочерней строке.
Вот как выглядит мой код:
_renderRow = (prediction) => {
return (
<TouchableOpacity onPress={() => {
Keyboard.dismiss();
this.setState({ location: prediction.description });
}}>
<View style={styles.listItemContainer}>
<Text>{prediction.description}</Text>
</View>
</TouchableOpacity>
)
}
render() {
return (
<View style={styles.wrapper}>
{/* style={[this.state.predictions.length > 0 ? styles.searchContainerSuggest : styles.searchContainer]} */}
<View style={styles.searchContainerSuggest}>
<View style={{paddingLeft: 10, height: 45, display: 'flex', justifyContent: 'center'}}>
<TextInput
placeholder="Enter location"
value={this.state.location}
onChangeText={location => this.onChangeLocation(location)}
style={styles.textInput}
/>
</View>
{this.state.predictions.length && this.state.location !== '' ?
<FlatList
keyboardShouldPersistTaps={'handled'}
refreshing={!this.state.loaded}
initialNumToRender={10}
enableEmptySections={true}
data={this.state.predictions}
keyExtractor={(_, index) => index.toString()}
renderItem={ ({item: prediction}) => this._renderRow(prediction) } />
: null}
</View>
</View>
);
}
Мне, вероятно, нужна рука или две помощи в отношении того, какдля устранения этой проблемы.
Посмотрел несколько примеров того, как бороться с одновременным нажатием определенной клавиши. выбор ребенка будет выбран. После выбора сработает обработчик события onPress, и именно там я вызову Keyboard.dismiss (), чтобы скрыть клавиатуру. Не похоже на работу.