navigation('DrawerOpen')不适用于createSwitchNavigator和createStackNavigator

时间:2018-07-17 07:06:17

标签: react-native react-native-android native-base

请检查此expo snack

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

用户登录后,切换程序将加载DrawerNavigator,该Screen1会通过contentComponent加载侧边栏(SideBar.js)

Screen1内部,我通过菜单burger按钮的this.props.navigation.navigate('DrawerOpen');事件呼叫onPress。但这不是打开抽屉。我在干什么

3 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:2)

使用此:

this.props.navigation.openDrawer();

答案 2 :(得分:0)

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