卸载所有先前安装的屏幕以在按回车时退出应用程序

问题描述 投票:0回答:1

我有一个要求,当按下后退按钮时,我需要退出该应用程序。基本上,我尝试使用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 });
};
react-native react-native-android react-navigation
1个回答
0
投票

解决方案是在导航到“名称”屏幕之前重置堆栈导航器。

在反应导航中使用reset操作来执行此操作。 documentation

© www.soinside.com 2019 - 2024. All rights reserved.