reactNative开发遇到的问题记录


外圆内方 2019-4-22 React React Native react-navigation

问题记录

  1. 在使用 react-navigation3.x 时,安卓设备遇到侧滑组件 createDrawerNavigator 无法侧滑的问题。

  2. 运行 run-ios 时没有问题,但是在运行 run-android 时。会不定期的出现 EPERM: operation not permitted, lstat <some_path_here> (这里不得不吐槽一下。window 上做开发真的是太恶心了,用虚拟机跑 mac 使用两天,体检就一个字——————爽,但是因为是虚拟机跑的,运行 ios 模拟器卡的要死。现在买不起 mac 是不是先弄个黑苹果呢)

问题一

 详细:react 版本 16.8.3,react-native 版本 0.59.4,react-navigation 版本 3.8.1。使用 react-navigation 的 createDrawerNavigator 侧拉抽屉,在安卓下侧拉没有反应。  解决:在项目根目录下进入 android\app\src\main\java\com\项目名称\MainActivity.java 添加下段中带加号的代码

package com.reactnavigation.example;

import com.facebook.react.ReactActivity;
+ import com.facebook.react.ReactActivityDelegate;
+ import com.facebook.react.ReactRootView;
+ import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;

public class MainActivity extends ReactActivity {

  @Override
  protected String getMainComponentName() {
    return "Example";
  }

+  @Override
+  protected ReactActivityDelegate createReactActivityDelegate() {
+    return new ReactActivityDelegate(this, getMainComponentName()) {
+      @Override
+      protected ReactRootView createRootView() {
+       return new RNGestureHandlerEnabledRootView(MainActivity.this);
+      }
+    };
+  }
}

 如果是真机调试,先删除 app,再连接数据线在拨号中输入'*#*#7777#*#*',打开开发者模式。重新安装后即可;如果是在安卓模拟器调试,重新运行安卓模拟器即可。

问题二

 详细:react 版本 16.8.3,react-native 版本 0.59.4,react-navigation 版本 3.8.1。平台:win10,开发工具:vs code。运行 run-android 命令有时会出现 EPERM: operation not permitted, lstat <some_path_here> ,项目运行不起来

 解决:进入 android 目录下,运行 ./gradlew clean 清除后再 react-native run-android 就好了