Как получить текущее значение Y из движения PanGestureHandler, пока пользователь проводит - PullRequest
1 голос
/ 01 мая 2020

Я пытаюсь выполнить обратную связь 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 не запускается с мой код, что я тут делаю не так? Как я могу получить это значение слушателя правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...