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 muestra otra página y luego la página de inicio, mientras navega a la página de inicio

Soy nuevo en React y estoy usando el curso intensivo de Traversy y el video adicional sobre el enrutador de reacción 6+.

Mis rutas son como

 import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'

return (
 <div className="container">
 <Router> 
 <Header
 title='sikyona'
 onAdd={()=> setShowAddtask(!showAddTask)}
 showAdd={showAddTask}
 />
 <Routes>
 <Route 
 path='/' 
 element={
 <>
 {showAddTask && <AddTask onAdd={addTask} />}
 {tasks.length > 0
 ? <Tasks tasks={tasks} onDelete={deleteTask} />
 :<p>add tasks</p> 
 }
 </>
 } 
 />
 <Route path='/about' element={<About/>} />
 </Routes>
 <Footer /> 
 </Router> 
 </div>
);

El problema es que cuando navego a la página de inicio http://localhost:3000/ primero veo la página Acerca de por un segundo y luego la página de inicio (Ruta ruta='/'...)

Tengo "react-router-dom": "^6.4.1",

¿Qué está pasando y cómo puedo solucionarlo?

almost 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El problema no es que la página "Acerca de" o el componente About de se represente cuando la aplicación se está cargando o navegando a "/" por primera vez. Es que la aplicación en realidad está en "/" y no hay tasks para mostrar todavía y la interfaz de usuario está representando el contenedor, el Header , la Route para la path="/" con el texto "agregar tareas" y el pie de Footer que representa un enlace a "/about" .

vue de la página de inicio sin tareas

Compare esta interfaz de usuario renderizada con la ruta "/about" real y el componente About de.

ingrese la descripción de la imagen aquí

Tal vez la UI/UX esté bien para usted con respecto a este comportamiento y la comprensión de qué se representa exactamente, cuándo y por qué razón. Si, por otro lado , no desea ver nada de la interfaz de usuario hasta que se hayan cargado los datos, puede modificar el código para que no muestre nada o algún indicador de carga mientras se recuperan las tareas.

Ejemplo:

 function App() {
 const [showAddTask, setShowAddtask] = useState(false);
 const [tasks, setTasks] = useState(); // <-- initially undefined

 useEffect(() => {
 const getTasks = async () => {
 try {
 const tasks = await fetchTasks();
 setTasks(tasks); // <-- defined and populated
 } catch(error) {
 // log errors, display message, etc... or ignore
 setTasks([]); // <-- defined and empty
 }
 };
 getTasks();
 }, []);

 ...

 if (!tasks) {
 return null; // <-- return null or loading indicator/spinner/etc
 }

 return (
 <div className="container">
 <Router>
 <Header
 title="hello"
 onAdd={() => setShowAddtask(show => !show)}
 showAdd={showAddTask}
 />
 <Routes>
 <Route
 path="/"
 element={
 <>
 {showAddTask && <AddTask onAdd={addTask} />}
 {tasks.length ? (
 <Tasks tasks={tasks} onDelete={deleteTask} />
 ) : (
 <p>add tasks</p>
 )}
 </>
 }
 />
 <Route path="/about" element={<About />} />
 <Route path="/task-details/:id" element={<TaskDetails />} />
 </Routes>
 <Footer />
 </Router>
 </div>
 );
}
almost 4 years ago · Santiago Trujillo Denunciar

0

Intente colocar su <Route path='/' /> en último lugar de la lista.

almost 4 years ago · Santiago Trujillo 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