React Native中Navigator的使用方法示例
前言
众所周知在React Native中如何实现页面的跳转,这是一个突破点也是一个难点,想让我们的页面切换起来动起来应该是每一个初学者所追求的,那么在RN中实现这样的功能那必须要了解Navigator的用法了.Navigator是React Native自带的组件,不需要导入第三方组件,下面就来具体说明如何使用.
方法如下
首先,我们最好不要把index.ios.js和index.android.js文件写的很冗余很多代码,可以仅仅将其当做是一个工程的入口,好,废话不多说,开始上代码.
1.习惯于在工程目录下建立js文件夹,并建立一个index.js文件(文件名可随便取)
2.代码编写
代码实现
renderScene和configureScene方法可以写在<Navigator />中但是那样会显得臃肿,所以建议这种写法.
configureScene(route){ if(route.sceneConfig){ return route.sceneConfig; } return Navigator.SceneConfigs.FloatFromRight;//这里是设置页面切换的动画效果,具体可参考官网 }
页面初始化
import LoginPage from './pages/login'; const initialRoute = { name: 'login', page: LoginPage, };
这几句代码相当于是初始化,从index.ios.js中导入了index.js文件,而index.js文件相当于设置了路由,初始化跳转到login页面.那么是不是实现跳转每个页面都要这么写呢?当然不是!
3.后续页面的跳转
上述代码说了初始跳转到login页面,那么login页面跳转到其他页面是不是还要写这么多代码呢?当然你愿意写这么多也是可以的,这里讲解更简洁的方式.
首先,在login页面import需要跳转到的目标页面.
目标页面导入
然后,记得写上这个方法,接收props
constructor(props, context) { super(props); }
定义一个方法,如下图所示,name为目标页面的文件名,name为import时起的名.
目标页面跳转方法
最后,调用方法实现跳转.
方法调用
也可以在Button ,TouchableHighlight等组件中调用.
后续的页面以此类推,可以实现页面跳转的功能,希望对你们有所帮助.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
ReactNative页面跳转Navigator实现的示例代码
本文介绍了ReactNative页面跳转Navigator,分享给大家.具体如下: Navigator即导航器,通过导航器我们可以实现应用在不同的页面之间进行跳转. 导航器会建立一个路由栈,用来弹出,推入或者替换路由状态.该路由栈相当于Android原生中使用的任务栈. renderScene 该方法就相当于我们使用的startActivity方法了,我们可以在该方法中设置需要渲染的场景(跳转的页面),该方法接收两个参数(必要参数),route和navigator,其中route就是路由的页面,
-
react-native-tab-navigator组件的基本使用示例代码
要做的效果很简单,如下图所示: 使用基本教程 1.引入组件 import TabNavigator from 'react-native-tab-navigator'; Github上的地址 2.render方法中返回: render() { return ( <View style={styles.container} > <TabNavigator> <TabNavigator.Item selected={this.state.selectedTab === '电影'}
-
React-Native中禁用Navigator手势返回的示例代码
在React-Native开发中,经常会用到导航.导航做什么用的呢,简单点说就是页面跳转. 个项目中,肯定有很多的页面要跳来跳去的,RN就给我们提供了Navigator组件,可以很好的管理页面的跳转. 在所有工作做完之后,发现有个bug!在从第一个界面跳转到下一个界面后,如果从屏幕左边向右滑,或者从上面想下滑,你会发现一个神奇的事情,那就是页面会通过滑动而返回到上一个界面.这让我们很尴尬了,本来打算禁止跳转返回的,或者返回时还要做些什么处理的,结果啥都没做,直接返回,可以说,这个功能有点适得其反
-
react-native组件中NavigatorIOS和ListView结合使用的方法
前言 本文主要给大家介绍了关于react-native组件中NavigatorIOS和ListView结合使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先看效果 使用方法 index.ios.js import React, {Component} from 'react'; import { AppRegistry, NavigatorIOS } from 'react-native'; import NewsList from './components/
-
React Native中Navigator的使用方法示例
前言 众所周知在React Native中如何实现页面的跳转,这是一个突破点也是一个难点,想让我们的页面切换起来动起来应该是每一个初学者所追求的,那么在RN中实现这样的功能那必须要了解Navigator的用法了.Navigator是React Native自带的组件,不需要导入第三方组件,下面就来具体说明如何使用. 方法如下 首先,我们最好不要把index.ios.js和index.android.js文件写的很冗余很多代码,可以仅仅将其当做是一个工程的入口,好,废话不多说,开始上代码. 1.习
-
React Native中实现动态导入的示例代码
目录 背景 多业务包 动态导入 Metro 打包原理 打包过程 bundle 分析 __d函数 __r函数 方案设计 分 识别入口 树拆分 bundle 生成 合 总结 背景 随着业务的发展,每一个 React Native 应用的代码数量都在不断增加,bundle 体积不断膨胀,对应用性能的负面影响愈发明显.虽然我们可以通过 React Native 官方工具 Metro 进行拆包处理,拆分为一个基础包和一个业务包进行一定程度上的优化,但对日益增长的业务代码也无能为力,我们迫切地需要一套方案来
-
React Native 中实现确认码组件示例详解
目录 正文 实现原理 开源方案 正文 确认码控件也是一个较为常见的组件了,乍一看,貌似较难实现,但实则主要是障眼法. 实现原理 上图 CodeInput 组件的 UI 结构如下: <View style={[styles.container]}> <TextInput autoFocus={true} /> <View style={[styles.cover, StyleSheet.absoluteFillObject]} pointerEvents="none&
-
React Native 中添加自定义字体的方法
目录 添加字体 定义 assets 目录 执行 link 命令 在样式中使用字体 示例 在 React Native 中,如何添加自定义字体呢?React Native 提供了便捷的命令行工具来帮助我们. 添加字体 在项目根目录下创建 assets/fonts 文件夹,把字体文件放到这个文件夹下. 如图: 定义 assets 目录 在项目根目录下创建 react-native.config.js 文件,编辑其中内容,留意第 6 行,这和我们自定义字体文件所在目录一致. module.export
-
React Native中Mobx的使用方法详解
前言 从今天开始我们来搞搞状态管理可否,这几天没怎么写博客,因为被病魔战胜了,tmd,突然的降温让我不知所措,大家最近注意安全,毕竟年底了,查的严,呸,大家注意保暖 特别声明:写该文只是写一下用MobX的思路,有很多地方我会直接放官网链接,因为官网已经写的够详细了 首先来个比较简单的,MobX. 引用官网上的一句话: MobX 是一个经过战火洗礼的库,它通过透明的函数响应式编程(transparently applying functional reactive programming - TF
-
React Native 中限制导入某些组件和模块的方法
目录 限制使用 Touchable 限制使用 Image 同时限制两者 示例 有些时候,我们不希望使用某些组件,而是想使用其他组件.这时候,我们可以使用一个名为 no-restricted-imports 的eslint 规则,该规则允许你指定一个或多个组件的名称,以防止使用这些组件. no-restricted-imports 是 eslint 自带的一个规则,我们不需要额外引入一个插件. 限制使用 Touchable 假如我们希望小伙伴们不要使用 Touchable 系列组件,而是使用 Pr
-
在 React Native 中使用 CSS Modules的配置方法
目录 安装依赖和配置 使用 示例 有些前端工程师希望也能像开发 web 应用那样,使用 CSS Modules 来开发 React Native.本文将介绍如何在 React Native 中使用 CSS Modules. 安装依赖和配置 首先安装 react-native-sass-transformer 使得我们可以在 React Native 应用中使用 sass 样式. yarn add react-native-sass-transformer sass -D 参考如下配置,修改 me
-
React Native 中处理 Android 手机吞字的解决方案
目录 复现问题 解决问题 示例 React Native App 在部分型号的 Android 手机上,可能会发生文字显示不全的问题. 官方也有一个 相关的 Issue ,并提供了如下的解决方案: const defaultFontFamily = { ...Platform.select({ android: { fontFamily: "" }, }), } const oldRender = Text.render Text.render = function (...args)
-
在 React Native 中给第三方库打补丁的过程解析
目录 安装 使用 示例 有时使用了某个React Native 第三方库,可是它有些问题,我们不得不修改它的源码.本文介绍如何修改源码又不会意外丢失修改结果的方法. 我们可能不方便给原作者提 Pull Request,因为他们可能不愿意接受我们的更改.又或者原作者无法及时发布新版本. 种种原因,我们只有去修改 node_modules 目录下的文件. 可是当我们执行 yarn install 或 yarn add 时,原先的修改会丢失. 有没有办法让我们可以在 yarn install 或 ya
-
react native中的聊天气泡及timer封装成的发送验证码倒计时
其实,今天我想把我近期遇到的坑都总结一下: 1.goBack的跨页面跳转,又两种方法,一可以像兔哥那样修改navigation源码,二可以用navigationActions 2.父子组件的传值,一可以用callBack 二可以用pubsub发布订阅模式 三可以用manager事件监听(a页面要显示的内容 有两种形式,一是从manager主动接收,也就是说不需要点击什么的获取数据,而是时时监听manager里数据的变化,第二种a页面获取要显示内容的形式是 点击出发,获取) 3 需要说的还是na
随机推荐
- Node.js异步I/O学习笔记
- php的ajax简单实例
- PHP改进计算字符串相似度的函数similar_text()、levenshtein()
- JavaScript中setTimeout和setInterval函数的传参及调用
- 一步步教你建立SQL数据库的表分区
- Oracle数据操作和控制语言详解
- WebPack基础知识详解
- jQuery中append()方法用法实例
- js 判断一组日期是否是连续的简单实例
- 浅析javascript中的DOM
- Java 1,2,3,4能组成多少个互不相同且无重复数字的实现代码
- Java排序方法sort用法详解
- js 代码优化点滴记录
- Android跳转到通讯录获取用户名称和手机号码的实现思路
- Vue.set()实现数据动态响应的方法
- PHP levenshtein()函数用法讲解
- Python微医挂号网医生数据抓取
- vue实现todolist功能、todolist组件拆分及todolist的删除功能
- 关于python导入模块import与常见的模块详解
- python实现简易学生信息管理系统