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

347
Visualizações
Los objetos no son válidos como hijos de React [promesa de objeto]

Soy nuevo usando reactjs. En el primer caso, quiero obtener datos json de fetch url, pero ese json necesita async await para mostrar todos los datos. Logré resolver ese problema, pero ahora quiero agregar datos de json para reaccionar al renderizado de retorno. y luego recibo un error como este Error no detectado: los objetos no son válidos como un niño React (encontrado: [objeto Promesa]). Si tenía la intención de representar una colección de niños, use una matriz en su lugar. . este es mi codigo

 async function URL(url, id){ return fetch(url+"/"+id) .then((response) => response.json()) .then((responseJson) => { const myArrayresponse = responseJson.image.split("/"); return "https://myurl.com/"+myArrayresponse[2]+"/"+myArrayresponse[3]; }) .catch((error) => { return "images/icon.png"; }); } const posts = datas[0].map((mydata, i) => URL(mydata.uri, mydata.id).then(img => { return `<a href={"https://myurl.com/"+CONFIG.ADDRESS+"?a="+mydata.id} target="_blank" className="mybtn"><div className="title">{mydata.name} ({mydata.symbol} - {mydata.id})</div><img src={img} /></a>`; }) ); return ( <ResponsiveWrapper flex={1} style={{ padding: 24 }} test> <s.Container flex={1} jc={"center"} ai={"center"}> {posts} </s.Container> </ResponsiveWrapper> )

const post es [objeto Promesa], ¿cómo agregar const post para reaccionar al renderizado sin [objeto Promesa]?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Obtiene [object Promise] porque en realidad está devolviendo una matriz de promesa.

Entonces, para que funcione, puede usar Promise.all , que toma una iteración de promesas como entrada y devuelve una única promesa que se resuelve en una matriz de los resultados de las promesas de entrada. Consulte aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

Puedes hacerlo de esta manera:

 const [posts,setPosts]= useState([]) async function URL(url, id){ return fetch(url+"/"+id) .then((response) => response.json()) .then((responseJson) => { const myArrayresponse = responseJson.image.split("/"); return "https://myurl.com/"+myArrayresponse[2]+"/"+myArrayresponse[3]; }) .catch((error) => { return "images/icon.png"; }); } useEffect(()=>{ async function getPosts(){ const result = await Promise.all(datas[0].map((mydata, i) => URL(mydata.uri, mydata.id).then(img => { return `<a href={"https://myurl.com/"+CONFIG.ADDRESS+"?a="+mydata.id} target="_blank" className="mybtn"><div className="title">{mydata.name} ({mydata.symbol} - {mydata.id})</div><img src={img} /></a>`; }) )); setPosts(result) }; getPosts() },[]) return ( <ResponsiveWrapper flex={1} style={{ padding: 24 }} test> <s.Container flex={1} jc={"center"} ai={"center"}> {posts} </s.Container> </ResponsiveWrapper> )
about 4 years ago · Juan Pablo Isaza Relatório
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