如何处理或阻止硬件后退按钮在本机Modal上反应?

时间:2018-10-22 15:35:47

标签: react-native react-native-android

为Android应用程序使用本机响应。 使用基于反应本机模态的自定义组件将内容显示在封闭视图上方。

已经尝试对本机Backhandler进行反应

   componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
  }

  componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
  }

  handleBackPress = () => {
    this.goBack(); // works best when the goBack is async
    return true;
  }

或类似的

componentDidMount() {
    this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
      this.goBack(); // works best when the goBack is async
      return true;
    });
  }

  componentWillUnmount() {
    this.backHandler.remove();
  }

此处打开issue

1 个答案:

答案 0 :(得分:1)

这行不通。如果您选中documentation,将会看到您需要在模式上使用 onRequestClose 。按照我给您的链接,BackHandler “ ...只要打开模式就不会发出事件”。

类似的事情会起作用:

      <Modal
        visible={visible}
        onRequestClose={() => {
          console.tron.log("back");
        }}
      >