React Native TextInput和FlatList捕获ListItem的onPress

时间:2017-08-30 09:46:18

标签: react-native react-native-ios react-native-listview react-native-flatlist react-native-text

所以我正在尝试创建一个自动完成搜索框,其中包含2个兄弟视图TextInput和FlatList(仅在 renderItem = ({ item }) => { return ( <TouchableOpacity onPress={(item) => {/* do something here */}}> <Text>{item.key}</Text> </TouchableOpacity> ); } render(){ return ( <View> <TextInput /> {this.state.data.length > 0 && <FlatList data={this.state.data} renderItem={this.renderItem} />} </View>); } 时显示),所以我的渲染函数如下: -

onEndEditing

问题是,当我点击列表项时,第一次点击会触发TextInput的{​​{1}}回调,然后第二次点击会触发onPress的{​​{1}}列表项目。

如何在第一次点击时触发列表项的onPress?

demo gif

1 个答案:

答案 0 :(得分:3)

它是反应原生的活跃issue

与此同时,您可以尝试使用keyboardShouldPersistTaps处理ScrollView属性。

return (
        <ScrollView
            style={ styles.flex }
            automaticallyAdjustContentInsets={ false }
            keyboardShouldPersistTaps="handled"
            contentInset={{ 'bottom':20 }}
            keyboardDismissMode='on-drag'
            >
            <View>...</View>
        </ScrollView>
    );