reactnavigation.org/docs/zh-Han…html
npm install @react-navigation/native
复制代码
The libraries we will install now arereact-native-gesture-handler
, react-native-reanimated
, react-native-screens
and react-native-safe-area-context
. 若是以前没有安装过这些包,就请安装:react
npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view
复制代码
From React Native 0.60
and higher, linking is automatic. So you don't need to run react-native link. 从react 0.60及更高的版本开始,react-native link已经自动化,就是给你配置好了,不须要手动配置了android
若是你是Mac并且开发环境是IOS系统的话,你还得须要手动配置,你须要installpods
去完成这个连接绑定,若是安装过Cocoapods,而后执行命令ios
cd ios; pod install;
复制代码
对于安卓来讲react-native-screens
的完成安装的配置,还须要在android/app/build.gradle
的dependencies
部分添加两行代码:npm
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
复制代码
须要在你配置路由的文件引入react-native-gesture-handler
,记住必定是顶部json
import 'react-native-gesture-handler'; //顶部
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
export default function App() {
return (
<NavigationContainer>
{/* Rest of your app code */}
</NavigationContainer>
);
}
复制代码
开始进行路由的配置,首先安装一下比较常见的导航器createStackNavigator
,这个东西是依赖于@react-native-community/masked-view
,在第二步已经安装了react-native
npm install @react-navigation/stack
复制代码
直接贴上官网的代码bash
//router.js
import * as React from 'react';
import { View, Text } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
function HomeScreen() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Home Screen</Text>
</View>
);
}
const Stack = createStackNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
export default App;
复制代码
//index.js
import {AppRegistry} from 'react-native';
import App from './router';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
复制代码
若是你碰见一个问题,好比app
object is null
)而且调试了好久没有结果时,从新安装一下app包,亲测,都是泪啊 T T学习
顺便我这个react小白吐槽一下,这个react-navigation
就不能改动小点吗,一个版本,一个写法,我也是服了。我安装的4.x版本的,我看着5.x的版本调了起来,感受本身的智商被秀了。。,我还调了2个小时左右
【此处有个伤心的表情包...】
建议4.x版本使用,5.x能够学习试试(太tm坑了,正式使用,你会崩溃的,反正我选择狗带-.-)