React Native-路由跳转
<p>搭建完RN开发环境后(搭建方式可查看https://www.cnblogs.com/luoyihao/p/11178377.html),要实现多个页面之间的跳转。</p><p> </p>
<p>1.这时需要安装react-navigation(在此之前的Navigator和ex-Navigation已经废弃),使用yarn add react-navigation命令进行安装。</p>
<p> </p>
<p>2.react-navigation依赖于react-native-gesture-handler组件,因此也需要使用yarn add react-native-gesture-handler命令进行安装。</p>
<p> </p>
<p>3.两个组件安装成功后,在index.js(入口文件,有可能是index.android.js或index.ios.js)注册一个App组件,引用自setup.js。</p>
<p><img src="https://img2018.cnblogs.com/blog/1740123/201907/1740123-20190721211146530-1254446972.png"></p>
<p> </p>
<p>4.在setup.js中导入createStackNavigator, createAppContainer两个函数和两个页面。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">import { createStackNavigator, createAppContainer } from "react-navigation";
import { Login } from "./js/pages/login";
import { ScanDevice } from "./js/pages/scanDevice";
</pre>
</div>
<p> </p>
<p>5.用createStackNavigator封装好两个页面的路由和标题的配置,设置好初始路由。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">const AppNavigator = createStackNavigator({
Login: {
screen:Login,
navigationOptions: {
title: '冷链物流助手',
headerTitleStyle:{
textAlign: 'center',
flex:1,
}
}
},
ScanDevice: {
screen:ScanDevice,
navigationOptions: {
title: '扫描设备',
headerTitleStyle:{
textAlign: 'center',
marginLeft:-25,
flex:1,
}
}
},
},{
initialRouteName: 'Login'
});
</pre>
</div>
<p> </p>
<p>6.将配置好的AppNavigator再用另一个函数createAppContainer封装,然后以类的组件的形式导出。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">const AppContainer = createAppContainer(AppNavigator);
export default class App extends React.Component {
render() {
return <AppContainer />;
}
}
</pre>
</div>
<p> </p>
<p>7.运行react-native run-android,如有报错则查询谷歌一步步解决。若出现Task :react-native-gesture-handler:compileDebugJavaWithJavac FAILED报错,则按照https://www.cnblogs.com/luoyihao/p/11222534.html解决。</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/luoyihao/p/11222717.html
頁:
[1]