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

179
Vistas
React Router renderizando páginas en blanco para todos los componentes

Actualmente estoy siguiendo un tutorial sobre react-router-dom y cada vez que coloco mis tres rutas en Router , sigo recibiendo páginas en blanco en las tres rutas cuando abro localhost. Estoy usando path y el element para configurar las rutas con operadores ternarios dentro del atributo del element , pero aún obtengo una página en blanco al renderizar. ¿Alguna idea de por qué sucede esto? ¡Gracias!

Aplicación.js

 import React, { Fragment, useState, useEffect } from "react"; import { BrowserRouter as Router, Route, Switch, Redirect } from "react-router-dom"; //components import Login from "./components/Login"; import Register from "./components/Register"; import Dashboard from "./components/Dashboard"; function App() { const checkAuthenticated = async () => { try { const res = await fetch("http://localhost:5000/auth/verify", { method: "GET", headers: { token: localStorage.token } }); const parseRes = await res.json(); parseRes === true ? setIsAuthenticated(true) : setIsAuthenticated(false); } catch (err) { console.error(err.message); } }; useEffect(() => { checkAuthenticated(); }, []); const [isAuthenticated, setIsAuthenticated] = useState(false); const setAuth = boolean => { setIsAuthenticated(boolean); }; return ( <Fragment> <Router> <div className="container"> <Switch> <Route path="/login" element={ !isAuthenticated ? ( <Login setAuth={setAuth} /> ) : ( <Redirect to="/dashboard" /> ) } /> <Route path="/register" element={ !isAuthenticated ? ( <Register setAuth={setAuth} /> ) : ( <Redirect to="/dashboard" /> ) } /> <Route path="/dashboard" element={ isAuthenticated ? ( <Dashboard setAuth={setAuth} /> ) : ( <Redirect to="/login" /> ) } /> </Switch> </div> </Router> </Fragment> ); } export default App;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El componente de Route en react-router-dom@5 no tiene un accesorio de element , el element es un accesorio v6.

En su lugar, utilice la función `render prop.

Ejemplo:

 <Switch> <Route path="/login" render={props => !isAuthenticated ? ( <Login setAuth={setAuth} {...props} /> ) : ( <Redirect to="/dashboard" /> ) } /> <Route path="/register" render={props => !isAuthenticated ? ( <Register setAuth={setAuth} {...props} /> ) : ( <Redirect to="/dashboard" /> ) } /> <Route path="/dashboard" render={props => isAuthenticated ? ( <Dashboard setAuth={setAuth} {...props} /> ) : ( <Redirect to="/login" /> ) } /> </Switch>

Actualizar

Es probable que el estado no autenticado coincida con su estado inicial antes de que se confirme el estado de autenticación. Utilice un valor de estado inicial isAuthenticated que no sea ni autenticado ni no autenticado, es decir, ni verdadero ni falso. Utilice este valor de estado "tercer" para convertir condicionalmente en nulo o algún otro indicador de carga mientras se resuelve el estado de autenticación.

Ejemplo:

 const [isAuthenticated, setIsAuthenticated] = useState(); if (isAuthenticated === undefined) { return null; // or loading spinner, etc... } return ( ... routes & UI ... );
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