我试图创建多个屏幕并在它们之间切换,我认为反应导航会很棒。但是,尽管将header设置为null,我还是会出现标题自动出现的问题。我的App.js createStackNavigation为:
const AppNavigator = createStackNavigator({
register : {
screen: RegisterScreen,
},
login: {
screen: LoginScreen,
},
home : {
screen: HomeScreen
},
},
{
navigationOptions: {
header:null,
headerMode: 'none',
}
}
);
这里有三个屏幕。即注册,登录和回家。在注册屏幕内,我还有其他createStackNavigator用于registerFinal,登录和注册屏幕本身。如下所示。
const registerNavigation = createStackNavigator(
{
register: {
screen: RegisterScreen,
headerMode: 'none',
navigationOptions: ({ navigation }) => ({
header: null,
}),
},
registerFinal: {
screen: RegisterFinalScreen,
navigationOptions: ({ navigation }) => ({
header: null,
headerShown: false
}),
} ,
login: {
screen: LoginScreen,
navigationOptions: ({ navigation }) => ({
header: null,
headerShown: false
}),
},
},
{
navigationOptions: ({ navigation }) => ({
header: null,
headerShown: false
}),
}
);
尽管,我使用其他问题中指定的两种方法在navigationOptions中禁用了标头,但它们似乎都不适合我。我的屏幕上出现两个标题。我该如何解决?
重新启动模拟器解决了问题。我的天啊。这件事让我改变了我的项目很多次。但是有时候,您只需要嘲笑它即可。
同样在注册堆栈上使用headerMode
而不是headerShown
。
基本上更改您的注册堆栈以反映以下内容:
const registerNavigation = createStackNavigator(
{
register: {
screen: RegisterScreen,
headerMode: 'none',
navigationOptions: ({ navigation }) => ({
header: null,
}),
},
registerFinal: {
screen: RegisterFinalScreen,
navigationOptions: ({ navigation }) => ({
header: null,
headerMode: 'none'
}),
},
login: {
screen: LoginScreen,
navigationOptions: ({ navigation }) => ({
header: null,
headerMode: 'none'
}),
},
},
{
navigationOptions: ({ navigation }) => ({
header: null,
headerMode: 'none'
}),
}
);const registerNavigation = createStackNavigator(
{
register: {
screen: RegisterScreen,
headerMode: 'none',
navigationOptions: ({ navigation }) => ({
header: null,
}),
},
registerFinal: {
screen: RegisterFinalScreen,
navigationOptions: ({ navigation }) => ({
header: null,
headerMode: 'none'
}),
},
login: {
screen: LoginScreen,
navigationOptions: ({ navigation }) => ({
header: null,
headerMode: 'none'
}),
},
},
{
navigationOptions: ({ navigation }) => ({
header: null,
headerMode: 'none'
}),
}
);
希望有帮助!