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

172
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
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