Я пытаюсь выполнить обратную связь Hapti c, когда пользователь перетаскивает контейнер с указанной c длиной пролистывания. Итак, с помощью следующего кода я пытаюсь получить значение translateY, когда пользователь перетаскивает контейнер с прослушивателем событий:
constructor(props: TweetsProps) {
super(props);
const { tweets } = props;
this.state = {
...
};
...
this.onPanGestureEvent = Animated.event(
[{ nativeEvent: { translationX: this.translationX, translationY: this.translationY } }],
{
useNativeDriver: true,
listener: this.onPan.bind(this),
},
);
this.onGestureEvent = event(
[
{
nativeEvent: {
translationX: this.translationX,
translationY: this.translationY,
velocityX: this.velocityX,
state: this.gestureState,
},
},
],
{ useNativeDriver: true },
);
}
...
onPan({ nativeEvent: { translationY } }) {
console.log("fired")
if (translationY > 130 || translationY < -130) {
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy);
}
}
render() {
const { onGestureEvent, translateY, onPanGestureEvent, onResponse } = this;
...
return (
<SafeAreaView style={styles.container}>
<View style={styles.cards}>
<PanGestureHandler
onHandlerStateChange={onGestureEvent}
onGestureEvent={onPanGestureEvent}
{...{ onGestureEvent }}
>
<Animated.View {...{ style }} onResponderMove={onResponse}>
<Card tweet={lastTweet} swipeDown={this.state.swipeDown} {...{
likeOpacity,
nopeOpacity
}} />
</Animated.View>
</PanGestureHandler>
</View>
...
);
}
Функция onPan не запускается с мой код, что я тут делаю не так? Как я могу получить это значение слушателя правильно?