导航关闭抽屉不起作用反应导航

时间:2019-04-09 06:20:09

标签: javascript react-native navigation-drawer react-navigation-drawer

我们将React Navigation用于我们的React Native应用程序并显示侧栏。 一切正常,但是close Drawer无法正常工作。

实际上,我必须在用户点击Android设备的后退按钮时关闭抽屉。

因此,我正在向后按钮处理程序方法中调用navigation.closeDrawer();

backButtonTap = () => {
    const { navigation } = this.props;
    navigation.closeDrawer();
    DeviceEventEmitter.emit('NavigatedToNewRoute', {
      route: 'screen1'
    });
    navigation.navigate('screen1');
  }

但是,当我们试图通过设备关闭后退按钮时,侧抽屉没有关闭。 OpenDrawer方法可以正常工作。

我的侧边栏中有很多屏幕。那么,在每个类中我都需要调用此closeDrawer方法,还是可以调用任何一个全局类? 如果抽屉打开,我只需要关闭,如果用户点击设备后退按钮,就必须关闭这个抽屉。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下吗?

import { DrawerActions } from "react-navigation";
...
backButtonTap = () => {
    const { navigation } = this.props;
    //navigation.closeDrawer();
    this.props.navigation.dispatch(DrawerActions.closeDrawer());
    DeviceEventEmitter.emit('NavigatedToNewRoute', {
      route: 'screen1'
    });
    navigation.navigate('screen1');
  }

答案 1 :(得分:0)

我认为react-navigation具有关闭抽屉的默认功能。 如果它不起作用,也可以尝试 在功能上通过导航道具,以便可以轻松处理。

this.props.navigationProps.toggleDrawer();