Ich versuche, den Bildschirm sowohl mit dem Stapel- als auch mit dem Tabulator-Navigator zu wechseln.
const MainNavigation = StackNavigator({
otp: { screen: OTPlogin },
otpverify: { screen: OTPverification},
userVerified: {
screen: TabNavigator({
List: { screen: List },
Settings: { screen: Settings }
}),
},
});
In diesem Fall wird zuerst stacknavigator und dann tabnavigator verwendet. und ich möchte Header des Stack Navigators verstecken. Es funktioniert nicht richtig, wenn ich Navigationsoptionen verwende wie:
navigationOptions: { header: { visible: false } }
ich versuche diesen Code auf den ersten beiden Komponenten, die in Stacknavigator verwenden. Wenn ich diese Zeile benutze, bekomme ich einen Fehler wie:
Ich verwende dies, um die Stack-Leiste auszublenden (beachte, dass dies der Wert des zweiten Parameters ist):
{
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
}
Wenn Sie diese Methode verwenden, wird sie auf allen Bildschirmen ausgeblendet.
In deinem Fall wird es so aussehen:
const MainNavigation = StackNavigator({
otp: { screen: OTPlogin },
otpverify: { screen: OTPverification },
userVerified: {
screen: TabNavigator({
List: { screen: List },
Settings: { screen: Settings }
}),
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
}
);
Verwenden Sie einfach den folgenden Code auf der Seite, auf der Sie die Kopfzeile ausblenden möchten
export default class Login extends Component {
static navigationOptions = {
header: null
}
}
siehe Stack Navigator
Fügen Sie dies einfach in Ihr Code-Snippet für Klassen/Komponenten ein, und die Kopfzeile wird ausgeblendet
static navigationOptions = { header: null }
Wenn Sie sich auf einem bestimmten Bildschirm verstecken möchten, gehen Sie wie folgt vor:
// create a component
export default class Login extends Component<{}> {
static navigationOptions = { header: null };
}
Wenn Ihr Bildschirm eine Klassenkomponente ist
static navigationOptions = ({ navigation }) => {
return {
header: () => null
}
}
code dies in Ihrem Zielbildschirm als erste Methode (Funktion).
Wenn jemand sucht, wie man den Header so in componentDidMount umschaltet, schreibe etwas wie:
this.props.navigation.setParams({
hideHeader: true,
});
Wann
static navigationOptions = ({ navigation }) => {
const {params = {}} = navigation.state;
if (params.hideHeader) {
return {
header: null,
}
}
return {
headerLeft: <Text>Hi</Text>,
headerRight: <Text>Hi</Text>,
headerTitle: <Text>Hi</Text>
};
};
Und irgendwo, wenn die Veranstaltung zu Ende ist:
this.props.navigation.setParams({
hideHeader: false,
});
Ich benutze header : null
anstatt header : { visible : true }
Ich verwende reaktions-native CLI. Das ist das Beispiel:
static navigationOptions = {
header : null
};
Verwenden
static navigationOptions = { header: null }
in der Klasse/Komponente wie
class Login extends Component {
static navigationOptions = {
header: null
}
}
Das hat bei mir funktioniert:
const Routes = createStackNavigator({
Intro: {
screen: Intro,
navigationOptions: {
header: null,
}
}
},
{
initialRouteName: 'Intro',
}
);
In Ihrem Zielbildschirm müssen Sie dies codieren!
static navigationOptions = ({ navigation }) => {
return {
header: null
}
}
const CallStack = createStackNavigator({
Calls: Calls,
CallsScreen:CallsScreen,
}, {headerMode: 'none'});
CallStack.navigationOptions = {
tabBarLabel: 'Calls',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-options' : 'md-options'}
/>
),
header: null,
headerVisible: false,
};
Alle Antworten zeigen, wie es mit Klassenkomponenten gemacht wird, aber für funktionale Komponenten tun Sie Folgendes:
const MyComponent = () => {
return (
<SafeAreaView>
<Text>MyComponent</Text>
</SafeAreaView>
)
}
MyComponent.navigationOptions = ({ /*navigation*/ }) => {
return {
header: null
}
}
Wenn Sie die Kopfzeile entfernen, befindet sich Ihre Komponente möglicherweise an Stellen, an denen Sie sie nicht sehen können (wenn das Telefon keinen quadratischen Bildschirm hat). Verwenden Sie sie daher unbedingt, wenn Sie die Kopfzeile entfernen.
Ich habe das gleiche Problem, aber ich habe meine Header-Arbeit in den einzelnen Klassen mit navigationOptions
erledigt und ich verwende createBottomTabNavigator
, dessen Header sichtbar und der Header von Klassen nicht sichtbar ist. Ich habe alles versucht wie headerMode: none
, header: null
und so weiter, aber die Kopfzeile von bottomTabNavigator
konnte nicht ausgeblendet werden.