React Native IOS: ignore swipe
У меня есть TouchableOpacity на весь экран, и соответственно метод его onPress. Метод обрабатывает GestureResponderEvent, и в зависимости от nativeEvent.locationX, решает переключать вправо или влево контент.
Тут есть проблема со свайпами: в какой части экрана (в правой или в левой) отпустить свайп, то он воспримет как одиночное нажатие на эту часть. Т.е. происходит ложное срабатывание.
Вопрос: как сделать чтобы свайп справа-налево/слева-направо не обрабатывался как onPress ?
Ответы (2 шт):
Использование TouchableOpacity для такого кейса мне кажется неправильным.
Можно использовать эту библиотеку: react-native-swipe-gestures, если уже используется react-native-reanimated, то использовать PanGestureHandler
Решил так:
- добавил метод на onPressIn который сохраняет координату Х.
- в сам метод onPress добавил сравнение текущей координаты Х, и сохранённой Х от метода onPressIn. Если не равны то это свайп и игнорим, т.е. return;