我在第一个屏幕中使用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();
}
答案 0 :(得分:1)
我遇到了同样的问题,并使用此代码解决了它。希望对您有帮助。
goBack=()=>{
this.props.navigation.goBack();
return true;
}
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.goBack);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.goBack);
}
我将此添加到不想退出的其他屏幕上。