реагировать на естественное прослушивание сенсорного события вне компонента - PullRequest
0 голосов
/ 25 апреля 2020

Я создаю список компонентов с возможностью просмотра. Я хочу добиться того, чтобы при активном одно смахивание, касание в любом другом месте, кроме этого смахивания, закроет смахивание. Вроде как textInput onblur.

Я думаю, что здесь может помочь добавление слушателя, но я не совсем уверен, как этого добиться.

У меня также есть стековый навигатор, который будет показывать страницу в верхней части списка. То, что я ищу, - то же самое, однажды вне представления, затем закройте салфетки.

Код такой, чтобы быть понятным.

<SafeAreaView>
  <ScrollView>
  {items.map(item => <CustomItem itemdata={item} />)}
  </ScrollView>
</SafeAreaView>

С пользовательским элементом, например:

import Swipeable from 'react-native-gesture-handler/Swipeable';

....//React component stuff

render() {
  return (
  <Swipeable
    friction={2}
    overshootRight={false}
    renderRightActions={this.renderRight}
  >
    <View> 
    .....
    </View>
  </Swipeable>
  );
}

1 Ответ

1 голос
/ 25 апреля 2020

Рядом с вашим компонентом добавьте TouchableOpacity, который занимает оставшуюся часть экрана


render() {
 return (
      <>
       <TouchableOpacity style={{flex: 1, height: "100%", width:"100%"}} onPress={()=>yourOutsdieClickAction()} />
       <Swipeable
          friction={2}
          overshootRight={false}
          renderRightActions={this.renderRight}
        >
        <View> 
        .....
        </View>
       </Swipeable>
      </>
      );
  }
...