一、安装依赖,使用npm或yarn命令,3.x版本必须安装react-native-gesture-handler
react-navigationreact-native-gesture-handler
二、 配置react-native-gesture-handler,可以执行如下命令
react-native link react-native-gesture-handler
android执行此命令,有时候会没有效果,需要检查核实
- 查看android/settings.gradle
- 查看android/app/build.gradle
- 查看android/app/src/main/java/com/projectname/MainActivity.java和MainApplication.java
//settings.gradleinclude ':react-native-gesture-handler'project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')//app\build.gradleimplementation project(':react-native-gesture-handler')//MainApplication.javaimport com.swmansion.gesturehandler.react.RNGestureHandlerPackage;public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { ... @Override protected ListgetPackages() { return Arrays. asList( new MainReactPackage(), new RNGestureHandlerPackage() ); } ... };//MainActivity.javaimport com.facebook.react.ReactActivityDelegate;import com.facebook.react.ReactRootView;import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;public class MainActivity extends ReactActivity { ... @Override protected ReactActivityDelegate createReactActivityDelegate() { return new ReactActivityDelegate(this, getMainComponentName()) { @Override protected ReactRootView createRootView() { return new RNGestureHandlerEnabledRootView(MainActivity.this); } }; }}
三、 undefined is not an object (evaluating 'RNGestureHandlerModule.State')
以及 undefined is not an object (evaluating 'RNGestureHandlerModule.Direction')
相关错误都是因为react-native-gesture-handler没有配置好