Я пытаюсь использовать response-native-reanimated с response-native-gesture-handler, но у меня проблема с его работой. Кажется, что обработчик жестов не запускает события. Я выполнил инструкции по установке response-native-gesture-handler, обновил CLI, добавил код в MainActivity. java (https://docs.swmansion.com/react-native-gesture-handler/docs/#android)
Я использую RN@0.63.2 , node@10.18.0 и react-native-gesture-handler@1.7.0
В настоящее время я следую этому руководству , но я не могу заставить работать PanGestureHandler, и он также не работает с TapGestureHandler. Вот код (который в основном является кодом из учебника):
import {PanGestureHandler, State} from 'react-native-gesture-handler';
import React, {Component} from 'react';
import {Text, View, StyleSheet} from 'react-native';
import Animated from 'react-native-reanimated';
const {event, Value, cond, eq, add, set} = Animated;
const styles = StyleSheet.create({
box: {
backgroundColor: 'red',
width: 200,
height: 200,
alignSelf: 'center',
},
});
function interaction(gestureTranslation, gestureState) {
console.log('test');
const start = new Value(0);
const dragging = new Value(0);
const position = new Value(0);
return cond(
eq(gestureState, State.ACTIVE),
[
cond(eq(dragging, 0), [set(start, position)]),
set(position, add(start, gestureTranslation)),
],
[set(dragging, 0), position],
);
}
export class Main extends Component {
constructor(props) {
super(props);
const gestureX = new Value(0);
const state = new Value(-1);
this._onGestureEvent = event([
{
nativeEvent: {
translationX: gestureX,
state: state,
},
},
]);
this._transX = interaction(gestureX, state);
}
render() {
return (
<PanGestureHandler
onGestureEvent={this._onGestureEvent}
onHandlerStateChange={this._onGestureEvent}>
<Animated.View
style={[styles.box, {transform: [{translateX: this._transX}]}]}
/>
</PanGestureHandler>
);
}
}
export default Main;
У вас есть идеи, почему это не работает?