React Native中NavigatorIOS组件的简单使用详解


Posted in Javascript onJanuary 27, 2018

一、NavigatorIOS组件介绍

1,组件说明

使用 NavigatorIOS 我们可以实现应用的导航(路由)功能,即实现视图之间的切换和前进、后退。并且在页面上方会有个导航栏(可以隐藏)。

NavigatorIOS 组件本质上是对 UIKit navigation 的包装。使用 NavigatorIOS 进行路由切换,实际上就是调用 UIKit 的 navigation。

NavigatorIOS 组件只支持 iOS 系统。React Native 还提供了一个 iOS 和 Android 都通用导航组件:Navigator。这个以后再说。

2,组件的属性

(1)barTintColor:导航条的背景颜色
(2)initialRoute:用于初始化路由。其参数对象中的各个属性如下:

{
 component: function, //加载的视图组件
 title: string, //当前视图的标题
 passPros: object, //传递的数据
 backButtonIcon: Image.propTypes.source, // 后退按钮图标
 backButtonTitle: string, //后退按钮标题
 leftButtonIcon: Image.propTypes.soruce, // 左侧按钮图标
 leftButtonTitle: string, //左侧按钮标题
 onLeftButtonPress: function, //左侧按钮点击事件
 rightButtonIcon: Image.propTypes.soruce, // 右侧按钮图标
 rightButtonTitle: string, //右侧按钮标题
 onRightButtonPress: function, //右侧按钮点击事件
 wrapperStyle: [object Object] //包裹样式
}

(3)itemWrapperStyle:为每一项定制样式,比如设置每个页面的背景颜色。
(4)navigationBarHiddent:为 true 时隐藏导航栏。
(5)shadowHidden:为 true 时,隐藏阴影。
(6)tintColor:导航栏上按钮的颜色。
(7)titleTextColor:导航栏上字体的颜色。
(8)translucent:为 true 时,导航栏为半透明。

3,组件的方法

当组件视图切换的时候,navigator 会作为一个属性对象被传递。我们可以通过 this.props.navigator 获得 navigator 对象。该对象的主要方法如下:
(1)pust(route):加载一个新的页面(视图或者路由)并且路由到该页面。
(2)pop():返回到上一个页面。
(3)popN(n):一次性返回N个页面。当 N=1 时,相当于 pop() 方法的效果。
(4)replace(route):替换当前的路由。
(5)replacePrevious(route):替换前一个页面的视图并且回退过去。
(6)resetTo(route):取代最顶层的路由并且回退过去。
(7)popToTop():回到最上层视图。

二、使用样例

NavigatorIOS是React Native自带的导航组件,下面是它的简单应用。

初始化第一个场景

import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { NavigatorIOS, Text } from 'react-native';
import { NextScene } from 'react-native';

export default class NavigatorIOSApp extends Component {
 render() {
  return (
   <NavigatorIOS
    initialRoute={{
     component: MyScene,
     title: '初始化第一个场景',
    }}
    style={{flex: 1}}
   />
  );
 }
}

class MyScene extends Component {
 static propTypes = {
  title: PropTypes.string.isRequired,
  navigator: PropTypes.object.isRequired,
 }

 _onForward = () => {
  this.props.navigator.push({
   component:NextScene
   title: '第二个场景'
  });
 }

 render() {
  return (
   <View>
    <Text>Current Scene: { this.props.title }</Text>
    <TouchableHighlight onPress={this._onForward}>
     <Text>前往下一个场景</Text>
    </TouchableHighlight>
   </View>
  )
 }
}

第二个场景

export default class NextScene extends Component {

 render() {
  return (
   <View>
    <Text>这是第二个场景</Text>
   </View>
  )
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
window.location和document.location的区别分析
Dec 23 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
jquery实现手风琴效果
Nov 20 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
Apr 01 Javascript
设置jQueryUI DatePicker默认语言为中文
Jun 04 Javascript
省市区三级联动jquery实现代码
Apr 15 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
解决React Native端口号修改的方法
Jul 28 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
Jan 13 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
Vue常用的几个指令附完整案例
Nov 06 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 #Javascript
使用D3.js创建物流地图的示例代码
Jan 27 #Javascript
javascript获取图片的top N主色值方法详解
Jan 26 #Javascript
Vue中render方法的使用详解
Jan 26 #Javascript
Angular利用trackBy提升性能的方法
Jan 26 #Javascript
微信小程序版翻牌小游戏
Jan 26 #Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 #Javascript
You might like
PHP 创建标签云函数代码
2010/05/26 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
详解Python Socket网络编程
2016/01/05 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
英国在线药房:Express Chemist
2019/03/28 全球购物
会计与审计专业自荐信范文
2014/03/15 职场文书
春节联欢会主持词
2014/03/24 职场文书
鼓舞士气的口号
2014/06/16 职场文书
八年级英语教学计划
2015/01/23 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
工作年限证明模板
2015/06/15 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
2019银行竞聘书
2019/06/21 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
javascript对象3个属性特征
2021/11/17 Javascript