'/'Función de controlador de inicio de sesión de URL
const loginHandler = (e) => { e.preventDefault(); Services.login(email, password) .then((Res) => { if(Res.data==="success"){ navigate('/home') } else { navigate('/',{ state: { msg: Res.data, }}) } }) .catch((error) => { console.log(error); }); };En Res.data que no sea el éxito , quiero redirigir a la misma /Url actualizando el estado de un componente para poder mostrar el mensaje de error adecuado en la misma página y evitar que el usuario navegue a /home Url . ¿Cómo puedo hacer eso?
Creo que encontrará que no es muy útil navegar a la misma página que desea. Parece más sencillo mantener algún estado en la página actual y mostrar/ocultar un mensaje de error basado en ese estado
import React, { useState } from 'react'; const ThisPage = () => { const [failed, setFailed] = useState(false); const loginHandler = () => { ....when you get to your error }else{ setFailed(true); } } //then render an error message on this page if failed return( <div> <SomeOtherContent /> <div hidden={!failed}>Something went wrong!</div> </div> ); }Si realmente necesita navegar a la misma página, podría usar useContext() para mantener un estado que esté fuera del componente de la página para que aún esté allí cuando redirija al mismo componente (y lo vuelva a representar). https://reactjs.org/docs/hooks-reference.html#usecontext