导航('DrawerOpen')不与 createSwitchNavigator 和 createStackNavigator 一起工作

navigate('DrawerOpen') not working with createSwitchNavigator and createStackNavigator

请检查这个expo snack

我有一个用于登录和未登录状态的切换导航器。

当用户登录时,切换器加载一个 DrawerNavigator,它加载 Screen1 并通过 contentComponent

加载边栏 (SideBar.js)

Screen1 内部,我通过菜单汉堡按钮的 onPress 事件调用 this.props.navigation.navigate('DrawerOpen');。但它没有打开抽屉。我在搞什么鬼

您调用的屏幕不包含在 DrawerNavigation 中,因此无法导航。要在任何地方打开抽屉只需使用

import { DrawerActions } from 'react-navigation';
...
openDrawer = () => {
  this.props.navigation.dispatch(DrawerActions.openDrawer());
}
...

使用这个:

this.props.navigation.openDrawer();

React Navigation 3.x中,您可以使用this.props.navigation.openDrawer();打开CreateDrawerNavigator中的抽屉。它与使用 this.props.navigation.dispatch(DrawerActions.openDrawer()); 相同。
您可以在此处查看官方文档:https://reactnavigation.org/docs/en/drawer-based-navigation.html