Tengo que redirigir al usuario al '/ tablero' después de iniciar sesión. Pero no quiero instalar react-router-dom v5.2.0 para usar history.push(). Actualmente está instalado react-router-dom v6. ¿Hay alguna otra alternativa para redirigir al usuario después de iniciar sesión? El mensaje de error muestra: er No se pueden leer las propiedades de undefined (leyendo 'push').
class Auth extends Component { constructor(props) { super(props); this.state = { tab: 'signin' } } SignIn = (email, password) => { axios.post('/api/users/login', {email, password}).then(res => { //console.log(res); if(res.data.success) { store.dispatch({ type: 'login', _id: res.data.user._id, user: res.data.user, token: res.data.token }); console.log(store.getState()); // Problem arises here. this.props.history.push('/dashboard'); } }).catch(er => { if (er.response) { console.log(er.response.data); console.log(er.response.status); console.log(er.response.headers); } else if (er.request) { console.log(er.request); } else { console.log('er', er.message); } console.log(er.config); }) }useNavigate es un gancho de reacción y, como tal, solo se puede usar en componentes funcionales. Lo que podría hacer es pasar navegar como accesorio si su componente principal es un componente funcional. Al igual que:
const ParentComponent = () => { const navigate = useNavigate(); return <Auth navigation={navigate} /> //pass to your component. }Luego podría intentar usarlo dentro de su componente.