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

190
Vistas
¿Cómo puedo llamar a una función ASYNC dentro de .map para completar una tabla en REACT?

Estoy tratando de llamar a una función asíncrona usando .map() en REACT para completar las celdas de datos de la tabla. La función asíncrona está llamando al backend de mi aplicación utilizando datos de la matriz que se está iterando.

La función que se está llamando devuelve un número cuando se llama correctamente. Esta es la primera vez que publico una pregunta, así que cualquier ayuda es genial. Si necesito agregar más información lo haré.

Gracias.

 {tableInfo.map(info => ( <tr> <td key={info.name}>{info.name}</td> <td key={info.price}>{info.price}</td> <td key={info.amount}>{info.amount}</td> <td> {async () => await fetchCurrentPrice.getPrice(info.name)} </td> </tr> ))}
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Las funciones async siempre devuelven promesas. No puede obtener datos de forma asíncrona durante la representación.

Necesita un gancho useEffect para ejecutar la función que recopila los datos y luego un gancho useState para almacenarlos, junto con la lógica para mostrar un estado de carga mientras lo espera.

 const MyRow = ({ info }) => { const [currentPrice, setCurrentPrice] = useState(null); useEffect(() => { fetchCurrentPrice.getPrice(info.name).then(setCurrentPrice); }, [info]); return <tr> <td key={info.name}>{info.name}</td> <td key={info.price}>{info.price}</td> <td key={info.amount}>{info.amount}</td> <td>{currentPrice ?? <Loading />}</td> </tr> }

con

 {tableInfo.map(info => <MyRow key={info.name} info={info} />)}
about 4 years ago · Juan Pablo Isaza Denunciar

0

Use un componente separado para la etiqueta tr y llámelo dentro.

 const Component = (props) => { const {info} = props useEffect(() => { // call your api and set it to state }, []) return <tr> <td key={info.name}>{info.name}</td> <td key={info.price}>{info.price}</td> <td key={info.amount}>{info.amount}</td> <td> {async () => await fetchCurrentPrice.getPrice(info.name)} </td> </tr> } {tableInfo.map(info => <Component info={info} />)}
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