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
Obteniendo "Error de tipo: no se pueden leer las propiedades de indefinido", pero obtengo 0 valores indefinidos cuando consola.log

Tengo esta función que se supone que debe devolver el nombre de un elemento collection_name que existe dentro de la cuenta de un usuario. En este caso el usuario se llama hola . Esta API devuelve un objeto en este caso, así que lo estoy convirtiendo en una matriz usando object.values . ¿Qué estoy haciendo mal aquí? (Además, el "hola" que se devuelve es solo un marcador de posición, tengo la intención de devolver el nombre de la colección allí.

 import Spinner from '../Spinner'; import { useState, useEffect } from 'react'; function Badges() { const [assets, setAssets] = useState<any[]>(); useEffect(() => { async function fetchData() { const res = await fetch( 'https://proton.api.atomicassets.io/atomicassets/v1/accounts/hello' ); const { data } = await res.json(); setAssets(data); } fetchData(); }, []); if (!assets) { return ( <div> <Spinner /> </div> ); } const messageArray = Object.values(assets); return ( <ul> {messageArray.map((result) => { const { 0: { collection: { collection_name }, }, } = result; console.log(collection_name); return <>hi</>; })} </ul> ); } export default Badges;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Dale una oportunidad a esto. ¿Creo que esto es lo que querías? Sin embargo, podría estar completamente apagado :) De todos modos, se realizaron algunos cambios notables

  • Eliminado const messageArray = Object.values(assets);
  • Se modificó el .map dentro del retorno.

Casi lo tenía, aunque creo que gran parte de la confusión se debió a cómo los datos regresaban de la API. La estructura de los datos parecía un poco confusa... al menos para mí. Para evitar este problema en el futuro, siempre puede respaldar sus respuestas de API con una interfaz de TypeScript.

 import Spinner from '../Spinner'; import { useState, useEffect } from 'react'; interface Assets { collections: CollectionParent[]; templates: Template[]; assets: string; } interface Template { collection_name: string; template_id: string; assets: string; } interface CollectionParent { assets: string; collection: Collection; } interface Collection { allow_notify: boolean; author: string; authorized_accounts: string[]; collection_name: string; contract: string; created_at_block: string; created_at_time: string; img: string; market_fee: number; name: string; } function Badges() { const [assets, setAssets] = useState<Assets>(); useEffect(() => { async function fetchData() { const res = await fetch( "https://proton.api.atomicassets.io/atomicassets/v1/accounts/hello" ); const { data } = await res.json(); setAssets(data); } fetchData(); }, []); if (!assets) { return ( <div> <Spinner /> </div> ); } return ( <ul> {assets?.collections?.length > 0 && assets.collections.map((collectionParent, index) => { return ( <li key={index}>{collectionParent.collection.collection_name}</li> ); })} </ul> ); } export default Badges;

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