Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

268
Vistas
Cómo permanecer en la ruta protegida, después de actualizar la página. Reaccionar enrutador 5.2.0

Tengo rutas públicas y protegidas, que implementadas en la siguiente lógica.

 useEffect(() => { checkIfAuthenticated(); //This function checks if the token is in localStorage // Initial state isAuthenticated = false }, []); const newHistory = useHistory() <Router history={newHistory}> {isAuthenticated ? ( <Layout> <Switch> <Route exact path="/clients" component={Clients} /> <Route exact path="/staff" component={Staff} /> <Redirect to="/clients" /> </Switch> </Layout> ) : ( <> <Route path="/login" component={Login} /> <Redirect to="/login" /> </>)} </Router> //store checkIfAuthenticated() { const accessToken = localStorage.getItem("access_token"); const refreshToken = localStorage.getItem("refresh_token"); if (accessToken && refreshToken) { this.isAuthenticated = true; } }

El problema es que cuando actualizo la página en la ruta /staff?page=1, la aplicación se inicializa desde cero y se me redirige a la ruta /clients. ¿Hay alguna forma de manejar este caso? Es decir, cuando actualizo la ruta privada, debo permanecer en la misma página. ¿Tal vez debería guardar la ruta actual en localStorage?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Debe usar la biblioteca redux-persist persist para mantener el valor de la variable isAuthenticated en localStorage después de la actualización.

Algo como esto:

 import { persistReducer } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; import userReducer from './userReducer'; const persistConfig = { key: 'user', storage, whitelist: ['access_token', 'refresh_token'], }; const persistedReducer = persistReducer(persistConfig, userReducer);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si está seguro de la persistencia de las variables en localStorage, verifique esto también:

 const accessToken = localStorage.getItem("access_token"); const refreshToken = localStorage.getItem("refresh_token"); const [isAuthenticated, setIsAuthenticated] = useState(false); useEffect(() => { if (accessToken && refreshToken) { setIsAuthenticated(true); } }, [accessToken , refreshToken ]); const newHistory = useHistory() <Router history={newHistory}> {isAuthenticated ? ( <Layout> <Switch> <Route exact path="/clients" component={Clients} /> <Route exact path="/staff" component={Staff} /> <Redirect to="/clients" /> </Switch> </Layout> ) : ( <> <Route path="/login" component={Login} /> <Redirect to="/login" /> </>)} </Router>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda