使用 BackHandler 和导航属性处理硬件后退按钮(不使用已弃用的 BackAndroid 不再使用的导航器)

此示例将向你显示通常在大多数流程中预期的返回导航。你必须根据预期的行为向每个屏幕添加以下代码。有 2 种情况:

  1. 如果堆叠中有超过 1 个屏幕,则设备后退按钮将显示上一个屏幕。
  2. 如果堆叠中只有 1 个屏幕,设备后退按钮将退出应用程序。

案例 1:显示上一个屏幕

import { BackHandler } from 'react-native';

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

componentWillMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
}

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

handleBackButtonClick() {
    this.props.navigation.goBack(null);
    return true;
}

重要提示: 不要忘记在构造函数中绑定方法并删除 co​​mponentWillUnmount 中的侦听器。

案例 2:退出应用程序

在这种情况下,无需在该屏幕上处理要退出应用程序的任何内容。

重要提示: 这应该只是堆栈屏幕。