BackHandler 不会返回超过 1 个屏幕

BackHandler does not go back more than 1 screen

我的每个屏幕上都有这段代码。按 android 后退按钮返回 1 个屏幕。再次按 android 后退按钮不会执行任何操作。只要堆栈中有更多屏幕,预期的结果就是继续返回。缺少什么?

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

componentWillUnmount() {
  BackHandler.removeEventListener('hardwareBackPress')
}

经过反复试验,此代码按预期工作。我相信我的初始代码实际上并没有删除事件侦听器。

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

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

backPressed = () => {
    this.props.navigation.goBack();
    return true;
}