[react native] react-native-tab-navigator在子Component中隐藏
因为文档只列出了TabBarIOS, 不支持Android,所以github上找到这个组件。
先说下我的页面构造: 入口文件 —> 注册组件(包含Navigator, 跳转到欢迎页)—> 欢迎页(一定时间后replace navigator) —> 底部导航页面
底部导航引用TabNavigator插件react-native-tab-navigator(TabNavigator创建子Component的写法是参考github上一个开源项目)
<TabNavigator
hidesTabTouch={false}
sceneStyle={{paddingBottom: 0}}
tabBarStyle={tabBarShow ? styles.tabNav : styles.tabNavHide}>
{this._renderTabItem(HOME_NORMAL, HOME_PRESS, HOME_TAB, '首页', 0, this._createChildView(HOME_TAB))}
{this._renderTabItem(MESSAGE_NORMAL, MESSAGE_PRESS, SHOP_TAB, '商家', 1, this._createChildView(SHOP_TAB))}
{this._renderTabItem(ME_NORMAL, ME_PRESS, ME_TAB, '我的', 0, this._createChildView(ME_TAB))}
{this._renderTabItem(DISCOVER_NORMAL, DISCOVER_PRESS, MORE_TAB, '更多', 0, this._createChildView(MORE_TAB))}
</TabNavigator>
在renderTabItem中,传入导航项目相关参数—图片(img)、选中图片(selectedImg)、标签(tag)、题目(title)、提示数目(badge)、子视图(childView);
_renderTabItem(img, selectedImg, tag, title, badgeCount, childView) {
return (
<TabNavigator.Item
selected={this.state.selectedTab===tag}
renderIcon={()=><Image style={styles.tabIcon} source={img}/>}
title={title}
selectedTitleStyle={styles.selectedTitleStyle}
renderBadge={()=>this._renderBadge(badgeCount)}
renderSelectedIcon={()=><Image style={styles.tabIcon} source={selectedImg}/>}
onPress={()=>this.setState({selectedTab:tag})}>
{childView}
</TabNavigator.Item>
);
}
_createChildView(tag) {
let renderView;
switch (tag) {
case HOME_TAB:
renderView = <HomePage {...this.props} />;
break;
case SHOP_TAB:
renderView = <ShopPage />;
break;
case ME_TAB:
renderView = <MePage />;
break;
case MORE_TAB:
renderView = <MorePage />;
break;
default:
break;
}
return (<View style={styles.container}>{renderView}</View>)
}
大概说下原理(我的理解):
[react native] react-native-tab-navigator在子Component中隐藏的更多相关文章
- 小谈React、React Native、React Web
React有三个东西,React JS 前端Web框架,React Native 移动终端Hybrid框架,React Web是一个源码转换工具(React Native 转 Web,并之所以特别提出 ...
- H5、React Native、Native应用对比分析
每日更新关注:http://weibo.com/hanjunqiang 新浪微博!iOS开发者交流QQ群: 446310206 "存在即合理".凡是存在的,都是合乎规律的.任何新 ...
- React 与 React Native 底层共识:React 是什么
此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React 与 React Native 结合学习的方法,此小节主要介绍 React 的底层原理与 ...
- 《React Native 精解与实战》书籍连载「React 与 React Native 简介」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- React、React Native面试题
1.React Native相对于原生的ios和Android有哪些优势. react native一套代码可以开发出跨平台app, 减少了人力.节省了时间.避免了 iOS 与 Android 版本发 ...
- React的React Native
React的React Native React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React ...
- React Navigation & React Native & React Native Navigation
React Navigation & React Native & React Native Navigation React Navigation https://facebook. ...
- 一次掌握 React 与 React Native 两个框架
此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React 与 React Native 结合学习的方法. 1. 软件开发语言与框架的学习本质 我 ...
- H5、React Native、Native性能区别选择
“存在即合理”.凡是存在的,都是合乎规律的.任何新事物的产生总要的它的道理:任何新事物的发展总是有着取代旧事物的能力.React Native来的正是时候,一则是因为H5发展到一定程度的受限:二则是移 ...
随机推荐
- 每天的代码review和解决技术难题
在此结构中,一个 PPC 处理器作为监管处理器,与大量的 SPE流处理器相连通,组成了一个工作流水线. 对于一个图形处理过程来说,某个 SPE 可负责提取数据,另一个 SPE 负责变换,再另一个负责存 ...
- jquery $.ajax()方法
$(function(){ $('#send').click(function(){ $.ajax({ /* *type:要求为String类型的参数,请求方式(post或get)默认为get. *注 ...
- Makefile简易教程
本文部分内容引用: 中文维基百科. 一个简单的Makefile教程. Makefile简介 在软件开发中,make通常被视为一种软件构建工具.该工具主要经由读取一种名为"makefile&q ...
- Torch 日志文件的保存 logroll
Torch 日志文件的保存 logroll 怎样将 Torch 在终端显示的信息,保存到 log 文件中 ? 现在介绍一种方法:利用 logroll 的方式. 参考 https://github ...
- 触发器事件trigger
修改mysql结束符 delimiter name 触发器语法: create trigger 触发器名称 after/before 触发时间 //错误 ERROR ...
- 新增了个job
https://112.124.41.113/svn/wbhpro/wbh-adapter-job
- Python之import
今天写了一个很简单的111.py文件(模块),用命令行直接import 111报错:syntaxerror:invalid systax 从网上查了一下,原因有如下集中: 1,所导入模块没有sys.p ...
- OData 带更新的实例,并能取得元数据格式类型
http://www.cnblogs.com/kid1412/p/6012938.html#CreateANewEntity <<ABP框架>> OData 集成 文档目录 ...
- [JBoss] - 解决URI提交时乱码问题
JBoss 7 AS解决url提交数据乱码的问题: 打开jboss-as-7.1.1.Final\standalone\configuration\standalone.xml文件,在<exte ...
- 解决“动软代码生成器在SqlServer中会将唯一索引识别为主键"的Bug
动软代码生成器在SqlServer中,生成的代码会将唯一索引错误地识别为主键, 反编译源代码后,发现其中的SQL条件有误,现修复此Bug. 修复方法:将附件中的”Maticsoft.DbObjects ...