backAction = () => { if (this.props.navigation.isFocused() && !this.state.otpScreen) { this.setState({ showLoginScreen: true }); return true; } else if(this.state.showLoginScreen) { this.props.navigation.dispatch(CommonActions.reset({ index: 0, routes: [ { name: 'Login' }, ], })) return false; }};
el código anterior es para la acción que debe realizar el hardware, presione hacia atrás, al principio debe mostrar una pantalla y en la segunda presión debe salir de la aplicación, tanto la pantalla otp como la pantalla de inicio de sesión están en el mismo componente, estoy simplemente se esconde según la condición... la primera vez funciona según la condición, pero la segunda vez no.
componentDidMount() { this.focusListener = this.props.navigation.addListener('focus', () => { this.setState({ mobile: '', showLoginScreen: true, }); }); this.getDataFromStorage(); AsyncStorage.setItem('countryCode', '+91'); BackHandler.addEventListener( "hardwareBackPress", this.backAction ); } componentWillUnmount() { clearInterval(this.interval) BackHandler.addEventListener('hardwareBackPress', () => { return false }) }por favor alguien me puede ayudar a hacer esto, gracias de antemano