Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
Bucle de inicio de sesión de react-client-session

Estoy tratando de implementar la funcionalidad de inicio de sesión en mi aplicación, pero cada vez que realizo una recarga FRESCA e intento redirigir a mi página de inicio, entra en un bucle infinito. ¿Cómo puedo resolver esto?

** Nota **

He refactorizado esto de muchas maneras con y sin estado de reacción en su lugar y muchas formas de redirigir, pero de cero a ninguna suerte, simplemente se repite infinitamente de diferentes maneras. Mi método actual no genera un error en la consola, son solo los registros de 'montaje' y 'redi' que leerá en mi código en bucle infinito hasta que mi CPU muera. Código de referencia

 // Other Imports. lke axios, useEffect and components from bootstrap. import { ReactSession } from 'react-client-session'; import { Redirect } from "react-router-dom"; const Login = () => { const { handleSubmit, register } = useForm(); const BASE_URL = process.env.REACT_APP_BASE_URL let [error, setError] = useState(false) let [errorMessage, setErrorMessage] = useState('') let [loginToken, setToken] = useState('') const login = async (data, e ) => { try { let loginData = { email: data.email, password: data.password, } let res = await axios.post(BASE_URL + '/users/admin/login', loginData) if (res.status === 200) { ReactSession.set('token', res.data.token) // return <Redirect to="/admin/index" /> setToken(res.data.token) }} catch (error) { setError(error) setErrorMessage("There's been a problem while you were loggin in") } } useEffect(() => { const token = ReactSession.get("token"); setToken(token) console.log('mounting') }, [loginToken]) if (loginToken){ console.log('redi') return <Redirect to="/admin/meals" /> } return ( // Login Form components.

Una copia de mi enrutador para referencia.

 // More Imports import AdminLayout from "layouts/Admin.js"; import AuthLayout from "layouts/Auth.js"; ReactSession.setStoreType("localStorage"); const token = ReactSession.get("token"); ReactDOM.render( <BrowserRouter> <Switch> <Route path="/auth" render={(props) => <AuthLayout {...props} />} /> <Route path="/admin" render={(props) => token ? <AdminLayout {...props} /> : <Redirect from="*" to="/auth/login" /> } /> {(token) ? <Redirect from="/" to="/admin/index" /> : <Redirect from="*" to="/auth/login" /> } </Switch> </BrowserRouter>, document.getElementById("root") );
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda