0

我正在使用 react-navigation v3 来响应本机应用程序。当我在 createStackNavigator 中创建DrawerNavigator 时,我无法打开Drawer,但如果我在根导航器中创建DrawerNavigator,我可以打开它。这是我的代码。有人对我有解决方案吗?

应用导航器.js

const AppNavigator =  createSwitchNavigator(
  {
    StackNavigatorMain: StackNavigatorMain,
    StackMenu: StackMenu
  },
  {
    headerMode: "null",
    navigationOptions: {
      headerVisible: false
    },
    initialRouteName: "StackNavigatorMain"
  }
);

export default createAppContainer(AppNavigator);

StackNavigatorMain.js

const StackNavigatorMain = createStackNavigator(
    {   
        routeHome: Home,
        routeLogin: Login,
        routeForgotPassword: ForgotPassword,
        routeSignUp: SignUp,
    },
    {
        headerMode: "none",
        initialRouteName: strings.routeHome,

    }
)
export default StackNavigatorMain

StackMenu.js

const StackMenu = createStackNavigator({
  //Drawer Optons and indexing
  MenuNavigator: MenuNavigator,
},
  {
    headerMode: "null",
    navigationOptions: {
      headerVisible: false
    },
  }
);

export default StackMenu;

MenuNavigator.js

const MenuNavigator = createDrawerNavigator({
  //Drawer Optons and indexing
  Setting: Setting
},
  {
    drawerWidth: responsiveWidth(180),
    overlayColor: 'transparent',
    // drawerLockMode: 'locked-open',
    contentComponent: AppSideMenu
  }
);

export default MenuNavigator;

index.js

export default class App extends Component {
  render() {
    return (
      <AppNavigator/>
    );
  };
}

在组件屏幕中调用打开抽屉 onPress 按钮

onClicked = () => {
        // props.navigation.openDrawer();
        props.navigation.dispatch(DrawerActions.openDrawer());
}
4

0 回答 0