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 相关文章推荐
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
Javascript中拼接大量字符串的方法
Feb 05 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
Dec 24 Javascript
原生js实现验证码功能
Mar 16 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
解决VUEX兼容IE上的报错问题
Mar 01 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
Aug 25 Javascript
Element输入框带历史查询记录的实现示例
Jan 15 Javascript
JS实现可控制的进度条
Mar 25 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 柱状图实现代码
2009/12/04 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
树结构之JavaScript
2017/01/24 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
python删除文件示例分享
2014/01/28 Python
python读写ini文件示例(python读写文件)
2014/03/25 Python
简单理解Python中的装饰器
2015/07/31 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
使用python实现滑动验证码功能
2019/08/05 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
python实现学生通讯录管理系统
2021/02/25 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
优秀共产党员演讲稿
2014/09/04 职场文书
中班上学期个人总结
2015/02/12 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL