RN实现TabNavigator
来源:互联网 发布:国家人社局软件 编辑:程序博客网 时间:2024/06/06 04:22
(1)实现
import React, {Component} from 'react';import { StyleSheet, Text, View, //Navigator, Image} from 'react-native';import Home from '../home/GDHome';import HourList from '../hourList/GDHourList';import Ht from '../ht/GDHt';//import Navigator from 'react-native-deprecated-custom-components';import NavigationExperimental from 'react-native-deprecated-custom-components';import TabNavigator from 'react-native-tab-navigator';export default class GDMain extends Component { constructor(props) { super(props); this.state = { selectedTab: 'home' }; } renderTabBarItem(title, selectedTab, image, imageSelect, component) { return ( <TabNavigator.Item selected={this.state.selectedTab === selectedTab} title={title} renderIcon={() => <Image source={{uri: image}} style={styles.tabBarIcon}/>} renderSelectedIcon={() => <Image source={{uri: imageSelect}} style={styles.tabBarIcon}/>} selectedTitleStyle={{color: 'black'}} //badgeText="1" onPress={() => this.setState({selectedTab: selectedTab})}> <NavigationExperimental.Navigator initialRoute={{ name: selectedTab, component: component }} // initialRoute 这个指定了默认的页面,也就是启动app之后会看到界面的第一屏。 需要填写两个参数: name 跟 component。 // http://blog.csdn.net/oiken/article/details/50459321 // 可以根据这个来进行跳转传参 renderScene={(route, navigator) => { let Component = route.component; return <Component {...route.params} navigator={navigator}/> }} /> </TabNavigator.Item> ) } render() { return ( <TabNavigator> {this.renderTabBarItem('主页', 'home', 'tabbar_home_30x30', 'tabbar_home_selected_30x30', Home)} {this.renderTabBarItem('海淘', 'ht', 'tabbar_abroad_30x30', 'tabbar_abroad_selected_30x30', Ht)} {this.renderTabBarItem('小时风云榜', 'hourlist', 'tabbar_rank_30x30', 'tabbar_rank_selected_30x30', HourList)} </TabNavigator> ); }}const styles = StyleSheet.create({ tabBarIcon: { width: 30, height: 30 },});
(2)传参
要传参界面
pushToHalfHourHot() { this.props.navigator.push({ name: 'abc', component: HalfHourHot, params: { user: 'hhh', } }); };
要接收参数界面
componentDidMount() { this.setState({ name: this.props.user, }); };
this.props.user才能访问到(网上的全错的,也有可能是版本更新导致的。实在不清楚就先用console.log(this.props)看看数据情况)
阅读全文
0 0
- RN实现TabNavigator
- RN实现轮播器
- RN实现九宫格
- RN实现ListView
- RN实现头部NavBar
- RN
- RN
- RN
- RN
- TabNavigator控件的子选项卡是用states实现的
- flex 和 flexlib类库 实现 菜单和 TabNavigator
- flex 和 flexlib类库 实现 菜单和 TabNavigator (二)
- RN仿QQ实现滑动删除
- 原生android工程实现RN集成
- 基于RN实现顶部tab导航切换
- pubsub-js 实现RN组件间通信
- Flex TabNavigator
- reactnative tabnavigator
- 一个在线音乐软件的故事(五、让我们开始写代码吧)
- hdu6180Schedule(第十场贪心)
- 面试干货!21个必知数据科学面试题和答案part1(1-11)
- 如何让Maya中的相机和Unity相机的FOV(Angle of View)对上
- 蓝牙通信
- RN实现TabNavigator
- Linux下的rpm软件管理(管理软件的卸载、安装、更新)
- java二维码工具类:生成二维码和解析二维码
- Ubuntu配置Django+ Apache2+ mysql
- ajax 异步请求 async:true;// true为异步,默认异步,false为同步
- Mac OS X 上的ldd和strace的替代
- Mongo3.4.7与java1.8结合测试代码
- Java 反射初探
- Android零基础入门第47节:自动完成文本框AutoCompleteTextView