[PanGestureHandler在React Native中的setState之后立即取消

问题描述 投票:0回答:1

[我正在尝试用react-native-reanimated模拟一个Instagram个人资料,以通过长按预览照片,而不是PanGestureHandler,我们可以喜欢这张照片。但是我在这里遇到困难,当我想长按照片时,我想将当前按下的图像更改为状态,因此弹出窗口将渲染当前按下的照片,但是PanGesture的State立即更改为CANCEL并结束流。如果我不执行setState,则所有手势处理程序都运行良好。

[请帮助,我是新来的反应本地复活,人们对此没有太多分享

这是我的代码,用于渲染单个照片组件...

import { TouchableOpacity, PanGestureHandler, LongPressGestureHandler } from 'react-native-reanimated';

class Instagram extend Component {

 ...........

  renderItem = (photo, index) => {
    return (
      <TouchableOpacity
        key={index}
        activeOpacity={0.7}
        onPressIn={() => this.setState({currentImage: photo.image})} //when i try to set the state, onGestureEvent on PanGestureHandler immediately canceled
        onPress={this.onTapItem}
      >
        <LongPressGestureHandler
          ref={this.longPressRef}
          simultaneousHandlers={[this.panGestureRef, this.longPressRef]}
          onHandlerStateChange={this.onLongPressStateChange}
        >
          <Animated.View>
            <PanGestureHandler
              ref={this.panGestureRef}
              simultaneousHandlers={[this.longPressRef, this.scrollRef]}
              onGestureEvent={this.onPanGestureHandler}
              onHandlerStateChange={e => console.log(e.nativeEvent.state, 'PAN STATE <<<<<<')}
            >
              <Animated.Image
                style={styles.photoItem(index)}
                source={{ uri: photo.image }}
              />
            </PanGestureHandler>
          </Animated.View>
        </LongPressGestureHandler>
      </TouchableOpacity>
    );
  };

   ..........
}

Guys im试图模拟具有react-native-reanimated的Instagram个人资料,以通过长按照片来预览照片,而不是PanGestureHandler,我们可以喜欢照片。但是当...

react-native pan long-press react-native-reanimated react-native-gesture-handler
1个回答
0
投票

您能够解决此问题吗?我也是React Native的新手,遇到同样的问题,每次更新状态时,PanGestureHandler都会停止工作。

© www.soinside.com 2019 - 2024. All rights reserved.