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

232
Visualizações
Para el bucle dentro de la cadena de promesa, ¿la razón por la cual el método de configuración de useState no funciona?

Nuevo en React y cosas asíncronas en javascript, y he revisado algunas preguntas similares en StackOverflow

  1. ¿Puedo establecer el estado dentro de un gancho useEffect?
  2. ¿Es useState sincrónico?
  3. Problema de useEffect de React Hook con setState

Aquí está mi efecto de uso. Estoy haciendo una recuperación (en getPieData), usando la respuesta para establecer el estado de la inversión (devuelve una matriz), luego uso el nuevo valor de la inversión para establecer el estado de los fondos (recorriendo la matriz). Ejecuto console.log y veo que el valor existe, pero cuando ejecuto setFundslist y luego mapeo su valor en un componente, obtengo que undefined no es una función. Establecer la inversión antes funciona, por lo que me pregunto si es el bucle for en sí mismo y algo relacionado con la asincronía lo que me está causando problemas.

 React.useEffect(() => { getPieData().then(response => { setInvestment(response); return response; }) .then((investmentResponse) => { const funds = [] for (var i = 0; i < investmentResponse.length; i++) { funds.push(investmentResponse[i]) } return funds }) .then(funds => { setFundsList(funds) console.log(funds) }) }, []);

Luego, en mi componente, en la línea con asterisco, aparece el siguiente error: TypeError: undefined is not a function (cerca de '...funds.map...')

 export default function Table({ fundsList }) { const [funds, setFunds] = React.useState([]); React.useEffect(() => { **********setFunds(fundsList.map(strat => ({*************** gainToday: "0.00%", title: strat, gainOverall: "0.00%" })).then(console.log(funds)) }, []); return( {funds.map(fund => ( // some stuff <tr key={fund.title}> // some stuff ))} ) }
about 4 years ago · Juan Pablo Isaza
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