React Native导入React导航

时间:2018-12-10 09:18:21

标签: react-native react-native-android react-navigation

我按照所有说明安装Android的React Navigation。

首先,“ npm install --save react-navigation”,“ npm install --save react-native-gesture-handler”。 “ react-native链接react-native-gesture-handler”,最后更新了我的MainActivity.java

这是我的MainActivity.java

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 {

/**
 * Returns the name of the main component registered from JavaScript.
 * This is used to schedule rendering of the component.
 */
@Override
protected String getMainComponentName() {
    return "InstagramClone";
}

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

这是我得到的错误:

  
      
  • 出了什么问题:   创建目录'D:\ React Native Projects \ InstagramClone \ node_modules \ react-native-gesture-时,无法创建父目录'D:\ React Native Projects \ InstagramClone \ node_modules \ react-native-gesture-handler \ android \ build' handler \ android \ build \ intermediates \ check-manifest \ debug'
  •   

3 个答案:

答案 0 :(得分:1)

如果您使用expo启动了项目,则只需安装react-native-gesture-handler。但是,如果您的项目以react-native cli开始,则必须首先安装react-native-gesture-handler,然后通过以下命令将其链接到所有软件包:

react-native link

答案 1 :(得分:0)

如果您必须使用link react-native-gesture-handler应该没有问题,或者您尝试react-native link它将链接所有程序包。或者,如果您仍然遇到相同的问题,请先在模拟器上删除应用,然后再次运行React-native run-android

答案 2 :(得分:0)

您需要单独安装react-native-gesture-handlernpm。他们创建了单独的npm包,用于触摸和手势处理和识别。

第1步。

npm i react-native-gesture-handler 

第2步。

react-native link react-native-gesture-handler 

第3步(可选)

如果第2步无法正常工作,则代码配置不正确,因此我们将使用第3步手动对其进行配置

要完成Android的react-native-gesture-handler的安装,请确保对MainActivity.java进行必要的修改:

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);  } 
 }; 
 } }

iOS不需要其他步骤。

请参阅以下文档以获取更多信息:-

https://reactnavigation.org/docs/en/getting-started.html#installation

https://www.npmjs.com/package/react-native-gesture-handler/v/1.0.0-alpha.34?activeTab=readme

https://kmagiera.github.io/react-native-gesture-handler/docs/getting-started.html