react-native – React Native – 设备后退按钮处理
发布时间:2020-12-15 20:44:07 所属栏目:百科 来源:网络整理
导读:我想检查当设备后退按钮被击中时是否有多个屏幕在堆栈上.如果是,我想显示前一个屏幕,如果没有,我想退出应用程序. 我已经检查了一些示例,但是那些使用了BackAndroid和Navigator.但他们俩都被弃用了. BackHandler是BackAndroid的替代品.我可以使用props.naviga
我想检查当设备后退按钮被击中时是否有多个屏幕在堆栈上.如果是,我想显示前一个屏幕,如果没有,我想退出应用程序.
我已经检查了一些示例,但是那些使用了BackAndroid和Navigator.但他们俩都被弃用了. BackHandler是BackAndroid的替代品.我可以使用props.navigation.goBack(null)显示上一个屏幕. 但是我无法找到用于在堆栈中查找屏幕计数的代码.我不想使用已弃用的Navigator!
此示例将向您显示通常在大多数流程中预期的返回导航.您必须根据预期的行为向每个屏幕添加以下代码.有2种情况:
1.如果堆叠屏幕超过1个,设备后退按钮将显示上一个屏幕. 2.如果堆叠中只有一个屏幕,设备后退按钮将退出应用程序. 案例1:显示上一个屏幕 import { BackHandler } from 'react-native'; constructor(props) { super(props) this.handleBackButtonClick = this.handleBackButtonClick.bind(this); } componentWillMount() { BackHandler.addEventListener('hardwareBackPress',this.handleBackButtonClick); } componentWillUnmount() { BackHandler.removeEventListener('hardwareBackPress',this.handleBackButtonClick); } handleBackButtonClick() { this.props.navigation.goBack(null); return true; } 重要提示:不要忘记在构造函数中绑定方法并删除co??mponentWillUnmount中的侦听器. 案例2:退出应用程序 在这种情况下,无需在要退出应用程序的屏幕上处理任何内容. 重要提示:这应该只是堆栈屏幕. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |