一,导航器的分类

二,reactnavigation,是react native官方推荐的导航器

官网:https://reactnavigation.org/
中文官网:https://www.reactnavigation.org.cn/docs/guide-intro

1,安装

建议直接看英文官网https://reactnavigation.org/docs/getting-started,不要看中文网,这个包更新太快了,网上的使用方法有的还是1.x的,至于视频中的写法和官网一致,也是5.x的,我这边刚开始不行,我是直接看官网才知道它少安装了npm install @react-navigation/stack(本文后续会讲到,先知道一下,不用操作)。
第一步:

npm install @react-navigation/native

我安装的版本是5.x版本的,网上中的写法不支持了,可以直接看英文官网来写:


再安装配套的一些库:

npm install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view

对于ios的处理:因为我只是练习,且电脑是windows,所以ios的都木有进行,只针对安卓进行学习记录。
对于安卓的处理:视频中有对build.gradel的处理,但是现在官网并没有这一步,应该是官网更新的版本处理了,不再需要这一步处理了。
接下来打开react-native-gesture-handle的官网:
https://docs.swmansion.com/react-native-gesture-handler/docs/#updating-mainactivityjava
这里需要修改android目录下的app>main>mainactivityjava文件:按照官网修改即可:

紧接着,在头部文件(即最顶层的文件(它没有父组件))中引入即可:

接下来,还需要安装这个插件(教程视频中好像少了这个):

npm install @react-navigation/stack

2,基本使用

第一步,新建两个页面组件

第二步,新建导航器

具体代码:

import React from 'react';
import Home from '@/pages/Home';
import Detail from '@/pages/Detail';
import { NavigationContainer } from '@react-navigation/native';
//管理整个导航树,并包含所有导航器
import { createStackNavigator } from '@react-navigation/stack';
//从堆栈导航器的包中引入这个函数,返回一个对象,此对象中有两个属性,Stack.Navigator和Stack.Screen
/* {Navigator:导航器组件Screen:导航器组件的子组件,用来定义路由(页面)}*/
type RootStackParamList = {Home: undefined;Detail: undefined;
}; //这样设置之后,Stack.Screen的name只能取这两个值
const Stack = createStackNavigator<RootStackParamList>(); //接收它返回的对象值
class Navigator extends React.Component {render() {return (<NavigationContainer><Stack.Navigator initialRouteName="Home">{/* 堆栈的第一层是home页面 */}<Stack.Screen name="Home" component={Home} />{/* component里面的就是名字为home的页面需要渲染的组件 */}<Stack.Screen name="Detail" component={Detail} /></Stack.Navigator></NavigationContainer>);}
}
export default Navigator;

第三步,在src下的index文件中直接引入导出这个,然后根目录引入这个文件

第四步:重新运行项目

三,配置定义导航栏

class Navigator extends React.Component {render() {return (<NavigationContainer><Stack.NavigatorinitialRouteName="Home"screenOptions={{headerTitleAlign: 'center', //标题居中显示}}><Stack.Screenname="Home"component={Home}options={{title: '首页', //重写标题名,默认和name一致}}/><Stack.Screenname="Detail"component={Detail}options={{title: '详情页', //重写标题名,默认和name一致}}/></Stack.Navigator></NavigationContainer>);}
}

四,实现点击进入详情页


首页文件:

实现效果:

设置动画:

有三种类型,可以设置为float.
然后导入使用这个动画样式:

底部主题区域实现卡片滑动效果:

开启安卓端手势滑动效果:

去除安卓头部的阴影样式(像下图这样写,是针对安卓的,如果针对ios,则写个ios的样式就可以)

五,导航器跳转传递参数

导航器除了传递navigation这个参数给组件之外,还传递route这个对象:

react native+typescript创建移动端项目-(慕课网喜马拉雅项目笔记)-(二,导航器navigator)相关推荐

  1. 为什么我切换到React Native来创建超级简单的底页

    I recently switched jobs, and one of my first tasks was to create a bottom sheet in React Native. 我最 ...

  2. 如何在React Native中创建精美的动画加载器

    by Vikrant Negi 通过Vikrant Negi 如何在React Native中创建精美的动画加载器 (How to create a beautifully animated load ...

  3. BS1022-基于React native+springboot开发服务端后台实现体育资讯类APP

    基于React native的体育资讯类APP的开发目的是方便互联网用户线上接收日常生活中的体育赛事新闻,体育活动新闻,体育赛事直播等,方便人们在体育行业的社交,极大的缩减人们在体育运动方面的距离,也 ...

  4. 【慕课网实战课程笔记】Vue.js高仿饿了么外卖App

    写在前面:该课程为慕课网付费课程,笔记内容代码居多.内容简略,仅供自己日后翻阅.如有疑问或者不妥,欢迎提出指正,我看到了会回复,谢谢! 第1章:课程简介 第2章:Vuejs介绍 Ctrl+Alt+l ...

  5. 慕课网实战项目《WebAPP书城整站开发》笔记一:底部边栏样式实现

    推荐IMOOC实践课程: <WebAPP 书城整站开发> 效果图             下边栏正常状态             下边栏变化状态             任务分析:   ( ...

  6. Java面向对像小项目 慕课网Java入门第二季滴滴租车系统

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  7. Java面向对象小项目 慕课网Java入门第二季答答租车系统

    一.项目背景 编写一个控制台程序,要求实现如下功能: 1.展示所有可租车辆 2.选择车型,租车量 3.显示租车清单,包括:总载货量,总载客量,总金额等: 二.车的类别 客车:只能载客 货车:只能载货 ...

  8. 【Vue3.0移动端项目--旅游网】--项目初始化搭建

    多一些不为什么的坚持

  9. 慕课网android 学习笔记

    1.android布局原则: (1)将可复用的组件抽出来并通过include标签使用. (2)使用viewstub标签来加载一些不常用的布局. (3)使用merge标签减少布局的嵌套层次. http: ...

  10. 慕课网 深入浅出javascript 笔记

    javascript 数据类型 5种简单数据类型:Number.String.Boolean.Undefined.Null 1种复杂数据类型:Object =    表示赋值: ==  表示比较,但是 ...

最新文章

  1. 《Redis设计与实现》之第四章:字典
  2. JavaScript中的常量:什么时候使用它,有必要吗?
  3. JAVA后端开发规范
  4. RLC协议简单理解2-RLC窗口的维护
  5. 计算机组成原理第一阶段测试,计算机组成原理随堂测验1附答案
  6. openlayers小车_openlayer 车辆跟着轨迹移动
  7. 有线网络高可用项目实施方案(更新中)
  8. .net4.0切换2.0时,SplitContainer”的对象强制转换为类型
  9. 最优化内外点法matlab实现
  10. linux u盘保护,u盘被写保护
  11. WDF基本对象和句柄定义
  12. oracle创建ora文件,ORACLE配置tnsnames.ora文件实例
  13. 学python后的感想_学习python的感想
  14. Hadoop的fsck工具
  15. 7款功能超牛的电脑软件,分分钟提高效率!
  16. H5学习之路之audio音频播放
  17. 《怪诞行为学》精粹(一)--为什么我们喜欢比较和攀比
  18. dgi数据治理_数据治理治什么?在哪治?怎么治?
  19. 什么是信息安全?什么是网络安全?什么又是计算机安全?
  20. Javac如何编译程序。

热门文章

  1. CrashLoopBackOff问题排查
  2. 桥式整流以及电容作用
  3. LVS(三)LVS集群NAT模式
  4. AMD and CMD are dead之KMDjs内核之依赖分析
  5. quartz 的job中获取到applicationContext
  6. Java NIO类库Selector机制解析(上)
  7. 【转载】ARX程序再VS2002中的调试初探
  8. 采集gpu_GPU是怎么处理游戏画面?一文看懂显卡的工作原理,原来这么简单
  9. Java 注解(Java Annotation)
  10. JOIN查询流程与驱动表