Ich denke, als nativer-Basis v2.3.1 (August 2017) der empfohlene Weg documentation on React Navigation/TabNavigator zu folgen ist. Natürlich ist dies nur, wenn Sie tatsächlich beabsichtigen, TabNavigator
(was ich tue) mit den Vorteilen von React Navigation zu verwenden (ich bin nicht sachkundig genug, um zu sagen, was diese sind).
Wenn Sie jedoch möchten, dass die Footer-Tabs Teil der Hauptnavigationsstruktur Ihrer App sind, anstatt eines Ad-hoc-Mechanismus für eine Seite, scheint dies der richtige Weg zu sein.
import React, { Component } from "react";
import LucyChat from "./LucyChat.js";
import JadeChat from "./JadeChat.js";
import NineChat from "./NineChat.js";
import { TabNavigator } from "react-navigation";
import { Button, Text, Icon, Footer, FooterTab } from "native-base";
export default (MainScreenNavigator = TabNavigator(
{
LucyChat: { screen: LucyChat },
JadeChat: { screen: JadeChat },
NineChat: { screen: NineChat }
},
{
tabBarPosition: "bottom",
tabBarComponent: props => {
return (
<Footer>
<FooterTab>
<Button
vertical
active={props.navigationState.index === 0}
onPress={() => props.navigation.navigate("LucyChat")}>
<Icon name="bowtie" />
<Text>Lucy</Text>
</Button>
<Button
vertical
active={props.navigationState.index === 1}
onPress={() => props.navigation.navigate("JadeChat")}>
<Icon name="briefcase" />
<Text>Nine</Text>
</Button>
<Button
vertical
active={props.navigationState.index === 2}
onPress={() => props.navigation.navigate("NineChat")}>
<Icon name="headset" />
<Text>Jade</Text>
</Button>
</FooterTab>
</Footer>
);
}
}
));
Dieser arbeitete tatsächlich einen Teil des @Hossein Mobasher Code überprüfen! lol. Danke, Mann! – msqar
@msqar Gern geschehen :) –
sollten Sie verwenden: this.state = {index: 0} im Konstruktor anstelle von: this.setState ({...}) –