volver sesión retroceso recargar que presionar pagina navegador muestre flechas deshabilitar desactivar cerrar boton bloquear atras anterior reactjs react-native navigation react-navigation

reactjs - sesión - Deshabilitar el botón de retroceso en la navegación de reacción



recargar pagina al volver atras (13)

¿Ha considerado usar this.props.navigation.replace( "HomeScreen" ) lugar de this.props.navigation.navigate( "HomeScreen" ) .

De esta manera, no está agregando nada a la pila. para que HomeScreen no muestre nada a lo que regresar si se presiona el botón Atrás en Android o la pantalla se desliza hacia la derecha en IOS.

Más información consultar la Documentation . Y, por supuesto, puede ocultar el botón headerLeft: null configurando headerLeft: null en navigationOptions

Estoy usando reaccionar navegación nativa (react-navigation) StackNavigator. comienza desde la página de inicio de sesión durante todo el ciclo de vida de la aplicación. No quiero tener una opción de regreso, volviendo a la pantalla de inicio de sesión. ¿Alguien sabe cómo se puede ocultar en la pantalla después de la pantalla de inicio de sesión? Por cierto, también lo estoy ocultando en la pantalla de inicio de sesión usando:

const MainStack = StackNavigator({ Login: { screen: Login, navigationOptions: { title: "Login", header: { visible: false, }, }, }, // ... other screens here })


Creo que es simple, solo agregue headerLeft : null , estoy usando react-native cli, así que este es el ejemplo:

static navigationOptions = { headerLeft: null, };


En la última versión (v2) funciona headerLeft:null . puede agregar las opciones de navigationOptions del controlador como se indica a continuación

static navigationOptions = { headerLeft : null };


Necesitamos establecer false en los gesturesEnabled headerLeft junto con headerLeft a null . Porque podemos navegar hacia atrás deslizando la pantalla también.

navigationOptions: { title: ''Title'', headerLeft: null, gesturesEnabled: false, }


Para la última versión de React Navigation, incluso si usa nulo en algunos casos, aún puede mostrar "atrás" escrito.

Busque esto en su app.js principal debajo de su nombre de usuario o simplemente vaya a su archivo de clase y agregue: -

static navigationOptions = { headerTitle:''Disable back Options'', headerTitleStyle: {color:''white''}, headerStyle: {backgroundColor:''black''}, headerTintColor: ''red'', headerForceInset: {vertical: ''never''}, headerLeft: " " }


Podemos arreglarlo estableciendo headerLeft en null

static navigationOptions =({navigation}) => { return { title: ''Rechercher une ville'', headerLeft: null, } }


Puede ocultar el botón de retroceso usando left:null , pero para dispositivos Android aún puede retroceder cuando el usuario presiona el botón de retroceso. Debe restablecer el estado de navegación y ocultar el botón con la left:null

Estos son los documentos para restablecer el estado de navegación: https://reactnavigation.org/docs/navigators/navigation-actions#Reset

Esta solución funciona para react-navigator 1.0.0-beta.7 , sin embargo, left:null ya no funciona para la última versión.


lo encontré yo mismo;) agregando:

navigationOptions: { headerLeft: null}

deshabilita el botón de retroceso predeterminado.

left: null,


usar el BackHandler de react native funcionó para mí. Simplemente incluya esta línea en su ComponentWillMount:

BackHandler.addEventListener(''hardwareBackPress'', function() {return true})

deshabilitará el botón de retroceso en el dispositivo Android.


SwitchNavigator sería la forma de lograr esto. SwitchNavigator restablece las rutas predeterminadas y desmonta la pantalla de autenticación cuando se invoca la acción de navigate .

import { createSwitchNavigator, createStackNavigator, createAppContainer } from ''react-navigation''; // Implementation of HomeScreen, OtherScreen, SignInScreen, AuthLoadingScreen // goes here. const AppStack = createStackNavigator({ Home: HomeScreen, Other: OtherScreen }); const AuthStack = createStackNavigator({ SignIn: SignInScreen }); export default createAppContainer(createSwitchNavigator( { AuthLoading: AuthLoadingScreen, App: AppStack, Auth: AuthStack, }, { initialRouteName: ''AuthLoading'', } ));

Después de que el usuario vaya a la pantalla de inicio de sesión e ingrese sus credenciales, deberá llamar

this.props.navigation.navigate(''App'');


Para react-navigation versión 4.x

navigationOptions: () => ({ title: ''Configuration'', headerBackTitle: null, headerLayoutPreset:''center'', headerLeft: null })


Para react-navigation versión v2 o más reciente

para hacer desaparecer el botón de retroceso:

navigationOptions: { title: ''MyScreen'', headerLeft: null }

Si también desea limpiar la pila de navegación, puede hacer algo como esto (suponiendo que se encuentre en la pantalla desde la que desea navegar):

use StackActions.reset(...)

import { StackActions, NavigationActions } from ''react-navigation''; const resetAction = StackActions.reset({ index: 0, // <-- currect active route from actions array actions: [ NavigationActions.navigate({ routeName: ''myRouteWithDisabledBackFunctionality'' }), ], }); this.props.navigation.dispatch(resetAction);

Más información aquí: https://reactnavigation.org/docs/en/stack-actions.html

Para Android, también tendrá que deshabilitar el botón de retroceso del hardware con el BackHandler:

https://.com/a/40146089/1979861

de lo contrario, la aplicación se cerrará al presionar el botón de retroceso del hardware de Android si la pila de navegación está vacía.

Nota: En el antiguo react-navigation v1 se usaba NavigationActions.reset lugar de StackActions.reset.


versiones de react-navigation> = 1.0.0-beta.9

const MainStack = StackNavigator({ Login: { screen: Login, navigationOptions: { title: "Login", header: { visible: false, }, }, }, FirstPage: { screen: FirstPage, navigationOptions: { title: "FirstPage", header: { left: null, } }, },