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

174
Vistas
Representación de una lista de elementos HTML con datos devueltos por el servidor

Tengo una matriz de objetos devueltos por el servidor que debo mostrar en una tabla. Intenté usar el método array.map() para mapear los objetos como elementos de fila en otra matriz y luego mostrar esa matriz en el JSX como <tbody>{listItems}</tbody>

 const TeacherTable = () => { let listItems async function getTeacherData() { const response = await fetch('http://localhost:1234/api/teacher') const res = await response.json() console.log(res.data) listItems = await res.data.map(record => ( <tr> <td>{record.teacherID}</td> <td>{record.teacherName}</td> <td>{record.teacherEmail}</td> </tr> )) } useEffect(() => { getTeacherData() }) return <tbody>{listItems}</tbody>; };

No sé qué estoy haciendo mal, pero parece que no funciona. Traté de console.log () la matriz de datos para verificar si los datos se pasan a la interfaz y se transmiten sin ningún error, pero aún así la lista no se procesa.

¿Cómo represento esta lista de elementos de fila de la matriz?

Gracias por leer hasta aquí. Espero que tengas un gran día/noche por delante.

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

0

Hay algunas cosas que debe hacer:

  1. listItems debe ser una variable de estado, lo que significa que provoca una nueva representación del componente cuando se actualiza, porque en este momento, cuando se configura listItems dentro de getTeacherData , el componente no se vuelve a representar. Lo he implementado como estado en el código actualizado a continuación (llamado items ahora). Si desea leer más sobre el estado y cómo provoca actualizaciones, debe consultar esto
  2. Debe pasar una matriz vacía como dependencias para useEffect . La breve explicación de por qué es porque solo desea que se llame a useEffect una vez, para obtener una explicación más completa, debe leer esto .
  3. Un poco construyendo (1), podría decirse que es una mejor práctica hacer que el estado solo contenga datos y no la lógica del componente. En este ejemplo, verá que no asigné los datos obtenidos como jsx, sino que simplemente almacené su contenido y lo asigné dentro de la parte de retorno del componente.

 import {useState, useEffect} from "react"; const TeacherTable = () => { const [items, setItems] = useState([]); useEffect(() => { async function getTeacherData() { const response = await fetch('http://localhost:1234/api/teacher') const res = await response.json() console.log(res.data) setItems(res.data); } getTeacherData(); }, []); return <tbody>{items.map(record => ( <tr> <td>{record.teacherID}</td> <td>{record.teacherName}</td> <td>{record.teacherEmail}</td> </tr> ))}</tbody>; };

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