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

177
Views
Los datos no pasan a la función de llamada React-Native

Hola, estoy tratando de llamar datos desde otra función. La función de llamada es esta,

 useEffect(() => { setFetching(true); const fetchMarketData = async () => { const marketData = await getMarketData(page); if (page === 1) { setData(marketData); return setFilteredData(marketData); } else { setFilteredData(data.concat(marketData)); return setData(data.concat(marketData)); } }; fetchMarketData(); if (data != undefined) { if (data.length > 0) setFetching(true); } else { } setFetching(false); }, [page]);

Cuando registro marketData, devuelve indefinido. Pero en estas funciones hasta volver da el resultado correcto.

 const formatMarketData = (data) =>{ let formattedData = []; data.forEach(item=>{ const formattedItem = { ...item } formattedData.push(formattedItem); }); return formattedData; } export const getMarketData = async (page) =>{ const sending = {"page" : page,}; const response = await fetch("https://us-central1-cnhtest-38661.cloudfunctions.net/getMarketDatas",{ headers: {"Content-Type":"application/json"}, method:"POST", body:JSON.stringify({data:sending}) }).then((res)=>{ res.json().then((r)=>{ return formatMarketData(r.result.data) }) }) }

¿Cómo puedo devolver correctamente este valor a la variable marketData de mi función de llamada?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Olvidaste return la primera promise chain interna. Necesitas cambiar

 .then((res)=> { res.json().then((r)=> { return formatMarketData(r.result.data) }) })

a lo siguiente.

 .then((res)=> { return res.json().then((r)=> { return formatMarketData(r.result.data) }) })

Aquí hay un fragmento de código actualizado.

 const formatMarketData = (data) => { let formattedData = []; data.forEach(item => { const formattedItem = { ...item } formattedData.push(formattedItem); }); return formattedData; } const getMarketData = async (page) => { const sending = {"page" : page}; const response = await fetch("https://us-central1-cnhtest-38661.cloudfunctions.net/getMarketDatas", { headers: {"Content-Type":"application/json"}, method: "POST", body: JSON.stringify({data:sending})}).then((res)=> { return res.json().then((r)=>{ return formatMarketData(r.result.data) }) }) return response } async function printResult() { const result = await getMarketData(1) console.log(result) } printResult()

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!