1

onPress所以我想创建一个自动完成搜索框有2兄弟看待TextInput和FlatList所以我的渲染功能如下(其中当this.state.data.length> 0只显示): -阵营本地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>); 
} 

问题是当我点击列表项时,第一次点击触发TextInput回调onEndEditing,然后第二次点击触发列表项的TouchableOpacityonPress

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

demo gif

回答

2

它是在反应天然活性issue

与此同时,您可以尝试在ScrollView中处理keyboardShouldPersistTaps物业。

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

非常感谢您的快速回答:) – aprofromindia

+0

肯定伟大的帮助:) – locropulenton