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

229
Vistas
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 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