Javascript 导航关闭抽屉不工作反应导航

Javascript 导航关闭抽屉不工作反应导航,javascript,react-native,navigation-drawer,react-navigation-drawer,Javascript,React Native,Navigation Drawer,React Navigation Drawer,我们正在为React本机应用程序使用React导航,并显示侧栏。 一切正常,但,关闭抽屉不工作 实际上,当用户点击安卓设备的后退按钮时,我必须关闭抽屉 因此,我正在调用navigation.closeDrawer() backButtonTap = () => { const { navigation } = this.props; navigation.closeDrawer(); DeviceEventEmitter.emit('NavigatedToNewRo

我们正在为React本机应用程序使用React导航,并显示侧栏。 一切正常,但,关闭抽屉不工作

实际上,当用户点击安卓设备的后退按钮时,我必须关闭抽屉

因此,我正在调用
navigation.closeDrawer()

backButtonTap = () => {
    const { navigation } = this.props;
    navigation.closeDrawer();
    DeviceEventEmitter.emit('NavigatedToNewRoute', {
      route: 'screen1'
    });
    navigation.navigate('screen1');
  }
但是,当我们试图关闭设备时,背面的按钮并没有关闭抽屉。
OpenDrawer
方法工作正常

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


有什么建议吗?

你能试试下面的吗

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');
  }

我认为react导航具有关闭抽屉的默认功能。 如果它不起作用,那么也试试这个 在功能中传递导航道具,以便它可以轻松处理此问题

this.props.navigationProps.toggleDrawer();

问题是我们正在调用BackHandler.addEventListener('hardwareBackPress',this.backPressHandler);在componentDidMount方法中,在componentDidMount中删除它将卸载,但是,如果我们导航到其他屏幕并返回到同一屏幕,则该方法不会触发。那么,我们在哪里可以编写addlistener而不是componentDidmount呢?