React 导航 header 在 drawernavigator 中消失
React navigation header disappear in drawernavigator
我将 react-navigation 更新为 1.0.0-beta.19,现在我的导航器组件无法正常工作。 header 从 DrawerNavigator 中消失了。
奇怪的是我试图将软件包恢复到以前的版本(1.0.0-beta.13),但并没有修复它。所以也许它与版本更新无关,但这是唯一改变的东西。
查看了node_modules中的包,果然恢复到了之前的版本
我很好奇是我的导航器组件坏了还是其他地方有问题?
导航器组件(bottom-up):
const AuthStack = StackNavigator({
login: { screen: LoginScreen }
,forgottendPassword: { screen: ForgottenScreen }
}, {
initialRouteName: 'login'
,headerMode: 'none'
});
// HomeScreen with drawer menu
const HomeDrawer = DrawerNavigator({
home: {
screen: HomeScreen
,navigationOptions: { drawerLockMode: 'locked-closed' }
}
}, {
initialRouteName: 'home'
,drawerPosition: 'right'
,drawerWidth: 300
,contentComponent: props => <HomeDrawerMenu {...props} />
});
// Main stack
const MainStack = StackNavigator({
homeDrawer: {
screen: HomeDrawer
,navigationOptions: ({ navigation }) => ({
header: <HomeMenu navigate={navigation.navigate} />
})
}
,partnerList: {
screen: PartnerListScreen
,navigationOptions: ({ navigation }) => ({
header: <PartnerListMenu navigation={navigation} />
})
}
}, {
initialRouteName: 'homeDrawer'
});
// Root navigator
const Nav = StackNavigator({
auth: { screen: ({ navigation }) =>
<AuthStack screenProps={{ rootNavigation: navigation }} />
}
,main: { screen: ({ navigation }) =>
<MainStack screenProps={{ rootNavigation: navigation }} />
}
}, {
initialRouteName: 'auth',
headerMode: 'none',
});
export default Nav;
包:
- 反应 - 16.0.0-beta.5
- react-native - 0.49.3
- 世博会 - 22.0.0
编辑:
缺少菜单的主屏幕屏幕截图:
不必要的 flex: 1
导致了问题。
我将 react-navigation 更新为 1.0.0-beta.19,现在我的导航器组件无法正常工作。 header 从 DrawerNavigator 中消失了。
奇怪的是我试图将软件包恢复到以前的版本(1.0.0-beta.13),但并没有修复它。所以也许它与版本更新无关,但这是唯一改变的东西。
查看了node_modules中的包,果然恢复到了之前的版本
我很好奇是我的导航器组件坏了还是其他地方有问题?
导航器组件(bottom-up):
const AuthStack = StackNavigator({
login: { screen: LoginScreen }
,forgottendPassword: { screen: ForgottenScreen }
}, {
initialRouteName: 'login'
,headerMode: 'none'
});
// HomeScreen with drawer menu
const HomeDrawer = DrawerNavigator({
home: {
screen: HomeScreen
,navigationOptions: { drawerLockMode: 'locked-closed' }
}
}, {
initialRouteName: 'home'
,drawerPosition: 'right'
,drawerWidth: 300
,contentComponent: props => <HomeDrawerMenu {...props} />
});
// Main stack
const MainStack = StackNavigator({
homeDrawer: {
screen: HomeDrawer
,navigationOptions: ({ navigation }) => ({
header: <HomeMenu navigate={navigation.navigate} />
})
}
,partnerList: {
screen: PartnerListScreen
,navigationOptions: ({ navigation }) => ({
header: <PartnerListMenu navigation={navigation} />
})
}
}, {
initialRouteName: 'homeDrawer'
});
// Root navigator
const Nav = StackNavigator({
auth: { screen: ({ navigation }) =>
<AuthStack screenProps={{ rootNavigation: navigation }} />
}
,main: { screen: ({ navigation }) =>
<MainStack screenProps={{ rootNavigation: navigation }} />
}
}, {
initialRouteName: 'auth',
headerMode: 'none',
});
export default Nav;
包:
- 反应 - 16.0.0-beta.5
- react-native - 0.49.3
- 世博会 - 22.0.0
编辑: 缺少菜单的主屏幕屏幕截图:
不必要的 flex: 1
导致了问题。