标签:return selectedTab react state tabBar import rn native 页面
版本为0.44.3版本,在最新版版本中,他们采用的是Hooks组件的写法;本文使用类组件写法
下载相关依赖后,可以直接复制在index.android.js文件中
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import TabNavigator from 'react-native-tab-navigator';//引入tabBar的导航栏
import Icon from 'react-native-vector-icons/FontAwesome'//引入字体图标库
import {Dimensions} from 'react-native'//可以获取到屏幕的宽度的一个方法
const deviceW = Dimensions.get('window').width;
const basePx = 375
function px2dp(px) {
return px * deviceW / basePx
}
//Home页面的书写
class Home extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
主页
</Text>
</View>
)
}
}
//第二页面的书写方式
class Profile extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
第二页
</Text>
</View>
)
}
}
//使用state定义主页的默认显示,
//selected里面的东西指向的是每个页面的名称
// renderIcon可以怎家一个字体图表
export default class KJ extends Component {
state={
selectedTab:"home"
}
render() {
return (
<TabNavigator style={styles.container}>
<TabNavigator.Item
selected={this.state.selectedTab === 'home'}
title="Home"
selectedTitleStyle={{color: "#3496f0"}}
renderIcon={() => <Icon name="home" size={px2dp(22)} color="#666"/>}
renderSelectedIcon={() => <Icon name="home" size={px2dp(22)} color="#3496f0"/>}
badgeText="1"
//点击时改变的是selectedTab里面的东西
onPress={() => this.setState({selectedTab: 'home'})}>
<Home/>
</TabNavigator.Item>
<TabNavigator.Item
selected={this.state.selectedTab === 'profile'}
title="Profile"
selectedTitleStyle={{color: "#3496f0"}}
renderIcon={() => <Icon name="user" size={px2dp(22)} color="#666"/>}
renderSelectedIcon={() => <Icon name="user" size={px2dp(22)} color="#3496f0"/>}
onPress={() => this.setState({selectedTab: 'profile'})}>
<Profile/>
</TabNavigator.Item>
</TabNavigator>
);
}
}
const styles = StyleSheet.create({
});
AppRegistry.registerComponent('KJ', () => KJ);
标签:return,selectedTab,react,state,tabBar,import,rn,native,页面 来源: https://www.cnblogs.com/jingguorui/p/11465954.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。