BackHandler.removeEventListener无法正常运行

时间:2018-06-27 09:59:22

标签: react-native

我在第一个屏幕中使用BackHandler.exitApp();,但是当我导航到另一个屏幕并单击android back按钮时,它仍然退出应用程序。

我在构造函数中使用了bind,所以我不知道为什么removeEventListener无法正常工作。

任何帮助将不胜感激。预先感谢。

这是我的BackHandler代码,就像这样:

  constructor(props) {
    super(props);
    this.backPressed = this.backPressed.bind(this);
  }

  componentWillMount() {
    if (Platform.OS === 'android') {
      BackHandler.addEventListener('hardwareBackPress', this.backPressed);
    }
  }

  componentWillUnmount() {
    if (Platform.OS === 'android') {
      BackHandler.removeEventListener('hardwareBackPress', this.backPressed);
    }
  }

  backPressed() {
    BackHandler.exitApp();
  }

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并使用此代码解决了它。希望对您有帮助。

goBack=()=>{
    this.props.navigation.goBack();
    return true;
}
componentWillMount() {
    BackHandler.addEventListener('hardwareBackPress', this.goBack);
}
componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.goBack);
}

我将此添加到不想退出的其他屏幕上。