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 相关文章推荐
广告切换效果(缓动切换)
May 27 Javascript
如何用js控制frame的隐藏或显示的解决办法
Mar 20 Javascript
javascript数组详解
Oct 22 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
May 10 Javascript
JS组件Bootstrap Select2使用方法解析
May 30 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
bootstrap组件之按钮式下拉菜单小结
Jan 19 Javascript
图文详解vue框架安装步骤
Feb 12 Javascript
vue强制刷新组件的方法示例
Feb 28 Javascript
js实现磁性吸附的示例
Oct 26 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
简介Django中内置的一些中间件
2015/07/24 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Tensorflow 实现释放内存
2020/02/03 Python
校园之星获奖感言
2014/01/29 职场文书
税务干部鉴定材料
2014/02/11 职场文书
大型会议接待方案
2014/03/01 职场文书
婚礼司仪主持词
2014/03/14 职场文书
元旦促销方案
2014/03/15 职场文书
学雷锋标语
2014/06/25 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
三方协议书
2015/01/27 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
详解Redis实现限流的三种方式
2021/04/27 Redis