对于想了解ReactNative中NavigatorIOS组件的简单使用的读者,本文将是一篇不可错过的文章,我们将详细介绍reactnative组件,并且为您提供关于ReactNative的Navig
对于想了解React Native中NavigatorIOS组件的简单使用的读者,本文将是一篇不可错过的文章,我们将详细介绍react native 组件,并且为您提供关于React Native 的 Navigator 组件使用方式、React Native中NavigatorIOS组件的简单使用详解、React Native中NavigatorIOS组件简单使用教程、React Native中NavigatorIOS组件(详细教程说明)的有价值信息。
本文目录一览:- React Native中NavigatorIOS组件的简单使用(react native 组件)
- React Native 的 Navigator 组件使用方式
- React Native中NavigatorIOS组件的简单使用详解
- React Native中NavigatorIOS组件简单使用教程
- React Native中NavigatorIOS组件(详细教程说明)
React Native中NavigatorIOS组件的简单使用(react native 组件)
NavigatorIOS 导航
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> ) } }
React Native 的 Navigator 组件使用方式
React Native的编程思想类似于iOS
,导航栏也使用Navigator
作为标识,类似于Android
的ActionBar
. 导航栏作为最重要的应用组件之一,除了处理页面导航功能以外,还会提供页面栈的管理,管理页面的跳入和跳出. 本文介绍一下 Navigator 组件的使用方式.
更多: http://www.wangchenlong.org/
本文源码的GitHub下载地址
欢迎Follow我的GitHub: https://github.com/SpikeKing
关于React Native项目的启动,参考1,参考2.
基本功能
Navigator
添加 Navigator 的组件<Navigator/>
. 设置方法: 初始化路由(initialRoute),配置场景动画(configureScene),渲染场景(renderScene). 初始化路由(initialRoute),使用FirstPage
页面作为首页.
// 主模块 class SimpleView extends Component { // ... render() { return ( <Navigator style={{flex:1}} initialRoute={{component: FirstPage}} configureScene={this.configureScene} renderScene={this.renderScene}/> ); } }
配置场景动画(configureScene): 根据路由的type
属性,判断使用的动画样式,底部弹出或右侧弹出.
/** * 配置场景动画 * @param route 路由 * @param routeStack 路由栈 * @returns {*} 动画 */ configureScene(route,routeStack) { if (route.type == 'Bottom') { return Navigator.SceneConfigs.FloatFromBottom; // 底部弹出 } return Navigator.SceneConfigs.PushFromright; // 右侧弹出 }
渲染场景(renderScene): 使用动态加载组件的方式. 设置加载页面的navigator
参数,其余使用route.passprops
属性传递其他参数.
/** * 使用动态页面加载 * @param route 路由 * @param navigator 导航器 * @returns {XML} 页面 */ renderScene(route,navigator) { return <route.component navigator={navigator} {...route.passprops} />; }
也可以使用静态加载组件
,需要预定义组件,没有动态加载灵活.
/** * 渲染场景,通过不同参数,设置不同页面 * @param route 路由,场景信息 * @param navigator 导航器 * @returns {XML} 页面 */ renderScene(route,navigator) { if (route.name == 'FirstPage') { return <FirstPage navigator={navigator} {...route.passprops}/> } else if (route.name == 'SecondPage') { return <SecondPage navigator={navigator} {...route.passprops}/> } }
第一页
FirstPage组件: 包含导航栏标题和两个跳转按钮. 提供两种跳转动画,右出和底部. 点击按钮调用_navigate()
方法,跳转到第二页.
// 第一页. 使用Component可以自动生成注释,符合标准 class FirstPage extends Component { // ... render() { return ( <View style={styles.container}> <View style={styles.heading}> <Text style={styles.headText}> {'第一页'} </Text> </View> <TouchableOpacity style={styles.button} onPress={()=>this._navigate('你好! (来源第一页:右出)')}> <Text style={styles.buttonText}> {'跳转至第二页(右出)'} </Text> </TouchableOpacity> <TouchableOpacity style={styles.button} onPress={()=>this._navigate('你好! (来源第一页:底出)','Bottom')}> <Text style={styles.buttonText}> {'跳转至第二页(底部)'} </Text> </TouchableOpacity> </View> ); } }
也可以使用
var FirstPage = React.createClass()
创建组件,但没有使用继承Component方式
规范,不能自动生成注释.
_navigate()
方法: 导航跳转,调用navigator.push()
方法. 传递参数passprops
的name
属性,type
动画类型,component
跳转组件.
/** * 给Navigator传递参数. * @param name 参数 * @private */ _navigate(name,type = 'normal') { this.props.navigator.push({ component: SecondPage,passprops: { name: name },type: type }) }
下划线表示私有方法,类似Java的private限定符.
第二页
SecondPage组件: 第二页,跳出返回第一页. 调用navigator.pop()
方法,使用当前页面出栈,显示上一个栈内页面.
// 第二页,点击跳出返回第一页 class SecondPage extends Component { render() { return ( <View style={styles.container}> <View style={styles.heading}> <Text style={styles.headText}> 第二页: {this.props.name} </Text> </View> <TouchableOpacity style={styles.button} onPress={()=>this.props.navigator.pop()}> <Text style={styles.buttonText}> 返回上一页 </Text> </TouchableOpacity> </View> ); } }
Navigator的主要功能,是管理页面栈,控制页面的跳入跳出.
统一导航栏
对于应用而言,需要统一的导航栏,Navigator 组件也提供导航栏的定制.
Navigator
与上文类似,额外添加navigationBar
的属性,自定义设置导航栏,保持所有页面的导航栏一致. 属性添加<NavigationBar/>
标签,通过routeMapper
控制导航栏的功能和样式.
// 主模块 class UniformView extends Component { //... render() { return ( <Navigator style={{flex:1}} initialRoute={{name: 'FirstPage',component: FirstPage}} configureScene={this.configureScene} renderScene={this.renderScene} navigationBar={ <Navigator.NavigationBar style={styles.navContainer} routeMapper={NavigationBarRouteMapper}/>} /> ); } }
RouteMapper
NavigationBarRouteMapper: 导航栏路由映射器,设置左键LeftButton,右键RightButton,标题Title.
// 导航栏的Mapper var NavigationBarRouteMapper = { // 左键 LeftButton(route,navigator,index,navstate) { // ... },// 右键 RightButton(route,// 标题 Title(route,navstate) { return ( <View style={styles.navContainer}> <Text style={styles.title}> 应用标题 </Text> </View> ); } };
左键LeftButton: index
属性表示当前页面的索引,通过判断index
属性,获知栈内是否有其他页面,判断后退
按钮是否显示. 点击调用navigator.pop()
出栈.
// 左键 LeftButton(route,navstate) { if (index > 0) { return ( <View style={styles.navContainer}> <TouchableOpacity underlayColor='transparent' onPress={() => {if (index > 0) {navigator.pop()}}}> <Text style={styles.leftNavButtonText}> 后退 </Text> </TouchableOpacity> </View> ); } else { return null; } },
右键RightButton: 点击调用路由(route)的onPress()
方法,提示信息. 根据路由的rightText
属性添加显示文字.
// 右键 RightButton(route,navstate) { if (route.onPress) return ( <View style={styles.navContainer}> <TouchableOpacity onPress={() => route.onPress()}> <Text style={styles.rightNavButtonText}> {route.rightText || '右键'} </Text> </TouchableOpacity> </View> ); },
第一页/第二页
第一页与第二页与上文类似,当第一页跳转时,传递的路由信息有些变化,控制第二页与导航栏的显示信息.
// 填出提示框 onPress() { alert("我是Spike!"); } /** * 跳转页面至SecondPage * @param name 传递参数 * @param type 动画类型 */ gotoNext(name,passprops: { id: name },onPress: this.onPress,rightText: 'ALERT!',type: type }) }
React Native 路由的基本功能就是这些,控制页面的切换,控制导航栏的功能. 导航栏作为应用最重要的组件之一,一定要熟练掌握.
OK,that’s all ! Enjoy it!
原始地址:
http://www.wangchenlong.org/2016/04/19/1604/191-rn-navigator/
欢迎Follow我的GitHub,关注我的简书,微博,CSDN,掘金. 我已委托“维权骑士”为我的文章进行维权行动. 未经授权,禁止转载,授权或合作请留言.
React Native中NavigatorIOS组件的简单使用详解
一、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> ) } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- 微信小程序间使用navigator跳转传值问题实例分析
- DataGridView使用BindingNavigator实现简单分页功能
- React Native中Navigator的使用方法示例
- react-native组件中NavigatorIOS和ListView结合使用的方法
- React-Native中禁用Navigator手势返回的示例代码
- react-native-tab-navigator组件的基本使用示例代码
- ReactNative页面跳转Navigator实现的示例代码
- JavaScript navigator.userAgent获取浏览器信息案例讲解
React Native中NavigatorIOS组件简单使用教程
本文主要介绍了react native中navigatorios组件的简单使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
一、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> ) } }
相关推荐:
React Native竖向轮播组件的封装详解
以上就是React Native中NavigatorIOS组件简单使用教程的详细内容,更多请关注php中文网其它相关文章!
React Native中NavigatorIOS组件(详细教程说明)
这篇文章主要介绍了react native中navigatorios组件的简单使用详解,现在分享给大家,也给大家做个参考。
一、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> ) } }
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在JS中如何实现两个变量值的交换方法
在Vue中如何实现自定义指令?
在vue里面通过父组件如何修改子组件样式
在vue-resource中有关jsonp跨域问题
在vue+webpack中如何实现异步组件加载?
在vue.js中使用Nginx来解决跨域
以上就是React Native中NavigatorIOS组件(详细教程说明)的详细内容,更多请关注php中文网其它相关文章!
今天关于React Native中NavigatorIOS组件的简单使用和react native 组件的介绍到此结束,谢谢您的阅读,有关React Native 的 Navigator 组件使用方式、React Native中NavigatorIOS组件的简单使用详解、React Native中NavigatorIOS组件简单使用教程、React Native中NavigatorIOS组件(详细教程说明)等更多相关知识的信息可以在本站进行查询。
本文标签: