我在每个屏幕上都有此代码。按下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;
}