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 相关文章推荐
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
解决json日期格式问题的3种方法
Feb 02 Javascript
调试代码导致IE出错的避免方法
Apr 04 Javascript
JavaScript利用正则表达式去除日期中的-
Jun 09 Javascript
js中键盘事件实例简析
Jan 10 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
详解微信第三方小程序代开发
Jun 23 Javascript
使用use注册Vue全局组件和全局指令的方法
Mar 08 Javascript
uni app仿微信顶部导航条功能
Sep 17 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
Jul 31 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中显示数组与对象的实现代码
2011/04/18 PHP
php检测useragent版本示例
2014/03/24 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
python简单实现刷新智联简历
2016/03/30 Python
Python中内建函数的简单用法说明
2016/05/05 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python远程连接MySQL数据库
2019/04/19 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
怎样写好创业计划书的内容
2014/02/06 职场文书
房屋买卖协议书
2014/04/10 职场文书
食堂卫生管理制度
2015/08/04 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
javascript的var与let,const之间的区别详解
2022/02/18 Javascript