rn中tabBar页面的书写

版本为0.44.3版本,在最新版版本中,他们采用的是Hooks组件的写法;本文使用类组件写法

下载相关依赖后,可以直接复制在index.android.js文件中

import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
//tabbar可以引入如下这个方法,也可以使用2.5.1版本中路由提供的一种方法
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);
原文地址:https://www.cnblogs.com/jingguorui/p/11465954.html