我的屏幕上没有 header,但我只想在一个屏幕上显示 header
I don't have headers on my screens but i want to have header only on one screen
我使用 reactnavigation 进行导航。我的屏幕上没有 header,但我只想在一个屏幕上显示 header(尤其是后退按钮)。
这是我的根导航器:
...
class RootNavigation extends Component {
props: Props;
render() {
const { isProfileSelect } = this.props;
const initialRouteName = currentRoute(isProfileSelect);
const RootStackNav = StackNavigator(
{
AppHome: { screen: TabBarNavigator },
SwitchProfile: { screen: SwitchProfileScreen },
Pin: { screen: PinScreen },
},
{
initialRouteName,
headerMode: 'none',
},
);
return <RootStackNav />;
}
}
...
有 headerMode: 'none',
这确实意味着我没有任何 header 导航器它适用于屏幕 AppHome
、SwitchProfile
但不适用于 Pin
我需要 header 上的后退按钮。因为我必须继续 SwitchScreen
并且我可以在 Pin
屏幕和从 Pin
屏幕继续我有时需要返回 SwitchScreen
而且我没有后退按钮 IOS。我只需要在 pin 屏幕上设置 header。
这是 navigationOptions
针屏:
...
static navigationOptions = {
title: I18n.t('screens.pinScreen.navigationOptions.title'),
};
...
但更改没有任何效果
你能帮我只在 Pin
屏幕上添加 header 吗?
谢谢
更新:
解决方案
const RootStackNav = StackNavigator(
{
AppHome: {
screen: TabBarNavigator,
navigationOptions: {
title: 'Header title',
headerMode: 'screen',
header: null,
},
},
SwitchProfile: {
screen: SwitchProfileScreen,
navigationOptions: {
title: 'Header title',
headerMode: 'screen',
header: null,
},
},
Pin: {
screen: PinScreen,
navigationOptions: {
title: 'Header title',
headerMode: 'screen',
// header: null,
},
},
},
{
initialRouteName,
// headerMode: 'none',
},
);
我的情况与你的情况相反...
我想在一个屏幕上禁用 header,因此我在该特定屏幕中添加了以下代码。
export default class NoHeaderView extends Component {
static navigationOptions = { header: null }
...
//your constructor, render and other stuff
...
}//
如果有效请告诉我。
我使用 reactnavigation 进行导航。我的屏幕上没有 header,但我只想在一个屏幕上显示 header(尤其是后退按钮)。 这是我的根导航器:
...
class RootNavigation extends Component {
props: Props;
render() {
const { isProfileSelect } = this.props;
const initialRouteName = currentRoute(isProfileSelect);
const RootStackNav = StackNavigator(
{
AppHome: { screen: TabBarNavigator },
SwitchProfile: { screen: SwitchProfileScreen },
Pin: { screen: PinScreen },
},
{
initialRouteName,
headerMode: 'none',
},
);
return <RootStackNav />;
}
}
...
有 headerMode: 'none',
这确实意味着我没有任何 header 导航器它适用于屏幕 AppHome
、SwitchProfile
但不适用于 Pin
我需要 header 上的后退按钮。因为我必须继续 SwitchScreen
并且我可以在 Pin
屏幕和从 Pin
屏幕继续我有时需要返回 SwitchScreen
而且我没有后退按钮 IOS。我只需要在 pin 屏幕上设置 header。
这是 navigationOptions
针屏:
...
static navigationOptions = {
title: I18n.t('screens.pinScreen.navigationOptions.title'),
};
...
但更改没有任何效果
你能帮我只在 Pin
屏幕上添加 header 吗?
谢谢
更新: 解决方案
const RootStackNav = StackNavigator(
{
AppHome: {
screen: TabBarNavigator,
navigationOptions: {
title: 'Header title',
headerMode: 'screen',
header: null,
},
},
SwitchProfile: {
screen: SwitchProfileScreen,
navigationOptions: {
title: 'Header title',
headerMode: 'screen',
header: null,
},
},
Pin: {
screen: PinScreen,
navigationOptions: {
title: 'Header title',
headerMode: 'screen',
// header: null,
},
},
},
{
initialRouteName,
// headerMode: 'none',
},
);
我的情况与你的情况相反... 我想在一个屏幕上禁用 header,因此我在该特定屏幕中添加了以下代码。
export default class NoHeaderView extends Component {
static navigationOptions = { header: null }
...
//your constructor, render and other stuff
...
}//
如果有效请告诉我。