React Native Gesture提示:undefined不是对象

nwlqm0z1  于 2023-11-21  发布在  React
关注(0)|答案(2)|浏览(156)

我已经安装了一个react-native 0.61项目,它运行时没有任何错误,但每当我滑动时都会得到这个。我使用的是react-native-gesture-handler:1.3.0

TypeError:Undefined不是对象(正在计算“rectEvt[mappingKey]”)。有关详细信息,请参阅image
我使用以下代码:

const circleRadius = 30;
class Circle extends Component {
  _touchX = new Animated.Value(windowWidth / 2 - circleRadius);
  _onPanGestureEvent = Animated.event([{nativeEvent: {x: this._touchX}}, { useNativeDriver: true }]);
  render() {
    return (
      <PanGestureHandler
        onGestureEvent={this._onPanGestureEvent}>
        <Animated.View style={{
          height: 150,
          justifyContent: 'center',
        }}>
          <Animated.View
            style={[{
                backgroundColor: '#42a5f5', borderRadius: circleRadius, height: circleRadius * 2, width: circleRadius * 2,
              }, {
                transform: [{translateX: Animated.add(this._touchX, new Animated.Value(-circleRadius))}]
              }]}
          />
        </Animated.View>
      </PanGestureHandler>
    );
  }
}

字符串

ru9i0ody

ru9i0ody1#

您以错误的方式向Animated.event传递参数:

_onPanGestureEvent = Animated.event([{nativeEvent: {x: this._touchX}}, { useNativeDriver: true }]);

字符串
Animated.事件应具有以下结构:

_onPanGestureEvent=Animated.event(
   [{nativeEvent: {x: this._touchX}}],
   { useNativeDriver: true }
   {listener},          // Optional async listener
 )

mrwjdhj3

mrwjdhj32#

在我的情况下,这个问题出现在安装react-native-draw包后,安装了以前的react-native-gesture-handler。
问题是ERROR TypeError: undefined is not an object (evaluating '_reactNativeGestureHandler.Gesture.Pan')
我意识到node_modules/@benjeau/react-native-draw/src中的文件Canvas.tsx在导入中有一个警告:

import {
  Gesture,
  GestureDetector,
  GestureHandlerRootView,
} from 'react-native-gesture-handler';

字符串
然后我认为这可能是由于软件包版本,我有版本1.10.3时卸载软件包,并再次安装更新到版本2.13.4和问题得到解决。

npm uninstall react-native-gesture-handler --save

npm install react-native-gesture-handler --save

相关问题