当前位置: 首页 > 后端技术 > Node.js

教你学习RN-路由导航-step2

时间:2023-04-03 17:04:52 Node.js

在项目中添加多个页面,实现页面间的跳转。路由React-Navigation经常用到reactNavigation-docs文档。RN0.6.0+安装。npminstallreact-native-reanimatedreact-native-gesture-handlerreact-native-screensreact-native-safe-area-context@react-native-community/masked-viewnpminstall@react-navigation/stack进入IOS下的项目使用初始化。podinstall在入口文件App中引入import'react-native-gesture-handler';import'react-native-gesture-handler';importReactfrom'react';importAppNavigatorfrom'./src/routes/index'。js.js';constApp:()=>React$Node=()=>{return;};导出默认应用程序;4.封装路由文件StackNavigator新建一个路由文件,这个文件和我们常用的vue/react一样的项目结构,统一管理路由。从'react'导入React;从'@react-navigation/native'导入{NavigationContainer};从'@react-navigation/stack'导入{createStackNavigator};从'../components/HelloWorld/HelloWorld.js'导入HelloWorld;从'../components/PizzaTranslator/PizzaTranslator.js'导入Pizz;从'../components/HelloWorld/Cats.js'导入Cats;从'../components/PizzaTranslator/Moves.js'导入Moves;const堆栈=createStackNavigator();constAppNavigator=()=>{return();};导出默认AppNavigator;5.如何进行路由跳转常用方法navigation.navigate('路由名称')。推新路线如果stacknavigator已经存在,则不会加载navigation.push('routingname')。将navigation.repalce('路由名称')添加到堆栈中。替换当前的webviewnavigation.goBack();navigation.popToTop();跳过中间直接返回home6。如何传参常用方法navigation.push('路由名称',{Json参数})props.navigation.push('Pizz',{title:'电影ing!'})navigation.setParams({})设置参数。初始参数可以通过initialParamspropScreen获取组件参数中的路由参数,传入global{navigation,route}.在传递参数的过程中,尽量减少数据量,不要使用任何数据。不要在对象中嵌套对象。functionCreatePostScreen({navigation,route}){const[postText,setPostText]=React.使用状态('');constChangeTitle=()=>{控制台。日志(导航,'ChangeTitle===',导航,路线);navigation.setOptions({title:'NewPage-2'});};}7。更改Nav-bar标题是我们经常遇到的场景。Stack.Screen默认给出标题usenavigation.setOptions().navigation.setOptions({title:'Updated!'})8.CustomNav-Bar-Title偶尔会遇到需要过屏或者自定义按钮的情况。第一种情况,可以使用Stack.Screen中的options参数对应headerLeftheaderRightheaderBackTitleheaderTruncatedBackTitleheaderBackImage,headerRight:()=>(alert('这是一个按钮!')}title="Info"color="#fff"/>),}}/>2.使用{navigation,route}navigation.setOptions({headerRight:()=>(setCount(c=>c+1)}title="更新计数"/>),});全屏模式自定义导航栏headerShown:false总结上面的学习,已经满足了日常的应用和底部的一些导航createBottomTabNavigator滑动导航