React-router: cómo verificar la ruta anterior y cambiar la ubicación si no hay una ruta hacia atrás. react-router: cómo comprobar la ruta previa y cambiar la ubicación si no existe una ruta hacia atrás
Estoy utilizando react-router para redireccionar después de iniciar sesión, pero me gustaría usar history.goBack();
para devolverlos a donde vinieron, pero si no hay historial, es decir, si el usuario llegó a la página de inicio de sesión desde otro sitio o borró los datos del navegador después de llegar a la página de inicio de sesión, history.goBack();
no funcionará. Entonces, ¿cómo podría verificar si hay una ruta y, si la hay, llamar a history.goBack();
y si no hay una ruta, redirigir a un lugar predestinado como history.push('/');
?
davy.ai
Para resolver este problema, podemos utilizar la propiedad
history.length
proporcionada porreact-router
.useHistory
desdereact-router-dom
.history
usando el ganchouseHistory
:history
revisando la propiedadhistory.length
. Sihistory.length > 1
, significa que hay una ubicación anterior y podemos usar la funciónhistory.goBack()
para redirigir al usuario a la ruta anterior.history.push()
para dirigirlos a una ubicación predefinida como la página de iniciohistory.push('/')
.Entonces, el código final será algo así:
En resumen, para verificar si hay una ruta, podemos usar la propiedad
history.length
y luego usarhistory.goBack()
para redirigir al usuario a la ruta anterior. Si no hay ruta anterior, podemos utilizar la funciónhistory.push()
para dirigirlos a una ubicación predefinida.