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 相关文章推荐
你真的了解JavaScript吗?
Feb 24 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
Feb 10 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
深入学习jQuery中的data()
Dec 22 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 Javascript
基于Vue.js 2.0实现百度搜索框效果
Dec 28 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
详解新手使用vue-router传参时注意事项
Jun 06 Javascript
javascript实现切割轮播效果
Nov 28 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脚本的10个技巧(7)
2006/10/09 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
js实现无缝轮播图
2020/03/09 Javascript
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
python 批量将中文名转换为拼音
2021/02/07 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
网上签名寄语活动留言
2014/01/18 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
天河观后感
2015/06/11 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书