Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

189
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!