react-native react-navigation的用法
react-navigation升级了, 看这个:
一、问题背景
react-navigation是react-native官方推荐的,基于Javascript的可扩展且使用简单的导航,功能强大且完备
回顾一下,react-navigation包含以下功能来帮助我们创建导航器:
- StackNavigator - 一次只渲染一个页面,并提供页面之间跳转的方法。 当打开一个新的页面时,它被放置在堆栈的顶部
- TabNavigator - 渲染一个Tab选项卡,让用户可以在几个Tab页面之间切换
- DrawerNavigator - 提供一个从屏幕左侧滑入的抽屉,类似bilibili和QQ的隐藏在左侧的内容栏功能
(1)通过navigate函数实现界面之间跳转:
- this.props.navigation.navigate('Mine');
参数为我们在StackNavigator注册界面组件时的名称。
同样也可以从当前页面返回到上一页:
- // 返回上一页
- this.props.navigation.goBack();
这是手动返回上一页,也可通过每个页面自带的返回图标返回
(2)跳转时传值:
- this.props.navigation.navigate('Mine',{info: 'value'});
第一个参数同样为要跳转的界面组件名称,第二个参数为要传递的参数,info可以理解为key,后面即传递的参数(value值)。
同样,我们也可以在跳转后的页面去获取携带过来的值:
- this.props.navigation.state.params.info}
通过state.params来获取传来的参数,后面为key值。此处为info。
- //会覆盖StackNavigator声明的页面的navigationOptions
- static navigationOptions = ({navigation}) => ({
- headerTintColor: '#fff',
- headerStyle: {height: 65, backgroundColor: '#fb7299'},
- headerTitle: navigation.state.params.title, //这是从上一级跳转携带的
- headerTitleStyle: {
- fontSize: 18,
- color: '#fff',
- alignSelf: 'center', //包括下面的属性主要是为了标题居中显示
- flex: 1,
- textAlign: 'center'
- },
- headerRight: <View>
- <TouchableOpacity onPress={() => {navigation.state.params.toOperate();}}> //此处必须通过添加参数的形式来调用方法
- <View><Text style={{color: '#fff', marginRight: 20}}>下一步</Text></View>
- </TouchableOpacity >
- </View>
- })
- 1. navigation.state.params.title表示通过参数的形式来显示标题
2. 想要标题居中,alignSelf: 'center', flex: 1, textAlign: 'center'
3. navigation.state.params.toOperate();通过这种传参的方式,在标题栏中调用方法- 该方法需要在componentDidMount()等方法中设置传递
- componentDidMount() {
- this.props.navigation.setParams({toOperate: () => {
- alert('操作')
- }})
- }
- 三、结语
先这样咯!
react-native react-navigation的用法的更多相关文章
- React Navigation & React Native & React Native Navigation
React Navigation & React Native & React Native Navigation React Navigation https://facebook. ...
- React Native中ref的用法(通过组件的ref属性,来获取真实的组件)
ref是什么? ref是组件的特殊属性,组件被渲染后,指向组件的一个引用.可以通过组件的ref属性,来获取真实的组件.因为,组件并不是真正的DOM节点,而是存在于内存中的一种数据结构,称为虚拟的DOM ...
- 转载一篇React native的props的用法
注:默认值如何设置 http://www.tuicool.com/articles/uMfYv2q
- React Native纯干货总结
随着项目也渐渐到了尾声,之前的项目是mobile开发,采用的是React Native.为即将要开始做RN项目或者已经做过的小伙伴可以参考借鉴,也顺便自己做一下之前项目的总结. 文章比较长,可以选择自 ...
- 如何用 React Native 创建一个iOS APP?(三)
前两部分,<如何用 React Native 创建一个iOS APP?>,<如何用 React Native 创建一个iOS APP (二)?>中,我们分别讲了用 React ...
- iOS 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- H5、React Native、Native应用对比分析
每日更新关注:http://weibo.com/hanjunqiang 新浪微博!iOS开发者交流QQ群: 446310206 "存在即合理".凡是存在的,都是合乎规律的.任何新 ...
- React Native控件之Listview
ListView组件用于显示一个垂直的滚动列表,其中的元素之间结构近似而仅数据不同. ListView更适于长列表数据,且元素个数可以增删.和ScrollView不同的是,ListView并不立即渲染 ...
- H5、React Native、Native性能区别选择
“存在即合理”.凡是存在的,都是合乎规律的.任何新事物的产生总要的它的道理:任何新事物的发展总是有着取代旧事物的能力.React Native来的正是时候,一则是因为H5发展到一定程度的受限:二则是移 ...
- React Native笔记整理
判断一个APP页面时原生还是H5:http://www.cnblogs.com/sonice-cinsy/p/5671324.html 写给移动开发者的React Native指南:http://bl ...
随机推荐
- Centos系统更改yum源为163
Centos安装好之后,按照网上教程对yum源进行修改,但更新之后发现总是提示更新失败,到163网站上查找资源发现目前大部分网上的教程都写错地址了,呵呵 下面是正确的办法,请参考 1.进入存放源配置的 ...
- redux中的compose源码分析
1. redux中compose用来组合各种中间件来实现链式调用,例子如下 compose( applyMiddleware, devTools, persistState, createStore ...
- Git 将代码恢复到一个历史的版本
Git 将代码恢复到一个历史的版本 要把代码回到某个历史版本 比如 test有两种方法 暴力的方式 如果你的仓库是自己在用(不影响别人),那么你可以使用 git reset --hard <ta ...
- 常见HTTP状态码(200、301、302、500等) 释义
对网站管理工作者来说有个词不陌生,HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码.状态码的第一个数字代表了响应的五种状态之一. 1XX系列:指定客户端应相应的某些动作,代表请求已 ...
- C# 根据twitter的snowflake算法生成唯一ID
C# 版算法: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- 《DSP using MATLAB》Problem 2.8
1.代码: 从MATLAB官方网上下载的. %*************************************************************************% %A ...
- java代码块执行顺序
父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...
- jquery插件与扩展一
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- (经典)直接插入排序based on 二分查找
#include<stdio.h> // 查找第一个大于key的元素,成功则返回该元素的下标,否则返回数组末元素的下一位 int findFirstLarger(int A[],int n ...
- redis的maxmemory与maxmemory-policy关系
如果redis配置了maxmemory和maxmemory-policy策略,则当redis内存数据达到maxmemory时,会根据maxmemory-policy配置来淘汰内存数据,以避免OOM.r ...