Nuevo en React y cosas asíncronas en javascript, y he revisado algunas preguntas similares en StackOverflow
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 ))} ) }