我按照所有说明安装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'
答案 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