在ReactNative项目中加入底部导航栏,效果如图所示:
第一步:导入项目
npm install react-native-tab-navigator
- 1
- 2
第二步:文件中导入使用
import TabNavigator from 'react-native-tab-navigator'
代码:
import React, { Component } from 'react'
import { View, Text, Button } from 'react-native'
//import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
//const Tab = createBottomTabNavigator();
import TabNavigator from 'react-native-tab-navigator';
import Ionicons from 'react-native-vector-icons/Ionicons';
import HomeScreen from './home'
import EditScreen from './edit'
import MineScreen from './mine'
export default class tabbar extends Component {
state = {
selectedTab: 'home',
page: [
{
selected: 'home',
title: '首页',
renderIcon: () => <Ionicons name='home' size={20} color={'#888'} />,
renderSelectedIcon: () => <Ionicons name='home-outline' size={20} color={'#F00'} />,
onPress: () => this.setState({ selectedTab: 'home' }),
component: <HomeScreen />
},
{
selected: 'edit',
title: '发布',
renderIcon: () => <Ionicons name='add' size={20} color={'#888'} />,
renderSelectedIcon: () => <Ionicons name='add-outline' size={20} color={'#F00'} />,
onPress: () => this.setState({ selectedTab: 'edit' }),
component: <EditScreen />
},
{
selected: 'mine',
title: '我的',
renderIcon: () => <Ionicons name='hammer' size={20} color={'#888'} />,
renderSelectedIcon: () => <Ionicons name='hammer-outline' size={20} color={'#F00'} />,
onPress: () => this.setState({ selectedTab: 'mine' }),
component: <MineScreen />
},
]
}
render() {
return (
<View style={{ flex: 1, backgroundColor: '#F5FCFF' }}>
<TabNavigator >
{
this.state.page.map((v, i) =>
<TabNavigator.Item key={i}
selected={v.selected === this.state.selectedTab}
title={v.title}
renderIcon={v.renderIcon}
renderSelectedIcon={v.renderSelectedIcon}
onPress={v.onPress}
selectedTitleStyle={{ color: "#c863b5" }}
tabStyle={{
backgroundColor: "#eee", justifyContent: "center"
}}
>
{v.component}
</TabNavigator.Item>
)
}
</TabNavigator>
</View>
)
}
}