我有一个要求,当按下后退按钮时,我需要退出该应用程序。基本上,我尝试使用BackHandler
API,该API可以运行,但有一定的限制。因此,就我而言,我认为最好的方法是卸载所有先前安装的组件,以便当前屏幕成为堆栈中的第一个屏幕。
我有以下屏幕:
登录Otp验证名称电子邮件。。。和更多
我需要的是,当我在名称屏幕上时,如果有人按下返回按钮,则应用程序应退出。但是,如果有人在电子邮件屏幕上,则用户应该只能返回到名称屏幕。
使用BackHandler的代码段
constructor(props) {
super(props);
.
.
BackHandler.addEventListener("hardwareBackPress", this._handleBackPress);
}
.
.
.
.
_handleBackPress = () => {
BackHandler.exitApp();
};
.
.
.
.
_onPress = () => {
BackHandler.removeEventListener("hardwareBackPress", this._handleBackPress);
this.props.navigation.navigate("Email", { name: this.state.name });
};
解决方案是在导航到“名称”屏幕之前重置堆栈导航器。
在反应导航中使用reset
操作来执行此操作。 documentation