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

171
Views
Intentando representar una llamada API dentro de una matriz asignada

Estoy haciendo una aplicación web de valores.

Estoy almacenando una matriz de "cuenta" de un usuario falso mapeándola y devolviéndola a una tabla.

Sin embargo, quiero usar el "Símbolo" dentro de la matriz para realizar una llamada de búsqueda a una API.

Y muestra cuánto es el valor actual de las acciones.

Esto ayuda al usuario a comparar cuánto se compara el "TotalCost" con el valor actual de las existencias.

Esto es lo que tengo hasta ahora

 const [account, setAccount] = useState([ { "Symbol": 'AAPL', "Shares": 1, "TotalCost": 130, }, { "Symbol": 'TSLA', "Shares": 1, "TotalCost": 1500, }, ]) <table> <tbody> {account.map((stocks)=> { const {Symbol , Shares, TotalCost} = stocks; return ( <tr> <td>{Symbol}</td> <td>{Shares}</td> <td>${TotalCost}</td> <td> {() => fetch("https://finnhub.io/api/v1/quote?symbol=" + Symbol + "&token=12345678910" ) .then(res=> res.json()) .then(data =>{ //how do I render data.c inside my table <td></td> tag return JSON.stringify(data.c) })} </td> </tr> ) })} </tbody> </table>
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La forma de 'Reaccionar', y también la forma correcta de hacer lo que está buscando, es la siguiente:

  1. Inicializa un estado de resultado vacío.
  2. Devuelve una tabla en blanco en el primer renderizado.
  3. Obtenga los datos dentro de un gancho useEffect() .
  4. Actualice el estado cuando finalice la consulta.
  5. Renderice los datos utilizando el estado de resultado.

Si no está familiarizado con el gancho useEffect (o los ganchos en general), eche un vistazo a los documentos de React para useEffect .

Un componente que hace esto se vería así:

 import { useState, useEffect } from "react"; function Stocks() { const [account, setAccount] = useState([ { Symbol: 'AAPL', Shares: 1, TotalCost: 130, }, { Symbol: 'TSLA', Shares: 1, TotalCost: 1500, }, ]); const [results, setResults] = useState([]); useEffect(() => { const fetchedResults = []; account.map(({Symbol, Shares, TotalCost}) => { fetch("https://finnhub.io/api/v1/quote?symbol=" + Symbol + "&token=12345678910") .then((res) => res.json()) .then((data) => fetchedResults.push({ Symbol, Shares, TotalCost, Content: data.c })); }); setResults(fetchedResults); }, []) return ( <table> <tbody> {results.map(({Symbol, Shares, TotalCost, Content}) => ( <tr> <td>{Symbol}</td> <td>{Shares}</td> <td>${TotalCost}</td> <td>{Content}</td> </tr> )) </tbody> </table> ) }

Explicación:

  • useEffect() : cuando se llama con el argumento de dependencia de [] (matriz vacía), la devolución de llamada dentro del enlace se llama una vez y solo después de que el componente se haya procesado, que es cuando deberían ocurrir efectos secundarios como solicitudes HTTP.
  • resultados : results se almacenan en el estado en el que queremos que el componente se vuelva a representar cuando se hayan obtenido los resultados, que es para lo que es el estado.
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!