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

332
Visualizações
TypeError no capturado: no se pueden leer las propiedades de nulo (leyendo '0') cuando se obtiene el enlace API en REACT

He obtenido correctamente los productos. Pero cuando registro en la consola, muestra nulo y luego muestra la matriz de 10 productos.

 const [datas,setDatas]=useState(null); const [loading,setLoading]=useState(false); useEffect(()=>{ fetch('products.json') .then(result =>result.json()) .then(data => setDatas(data)); setLoading(true); },[]); console.log(datas);//no error occured

[![Muestra productos nulos y 10][1]][1]

Pero cuando accedo al índice 0 de la matriz de datos , ¡muestra un error! aquí está mi código

 const [datas,setDatas]=useState(null); const [loading,setLoading]=useState(false); useEffect(()=>{ fetch('products.json') .then(result =>result.json()) .then(data => setDatas(data)); setLoading(true) },[]); console.log(datas[0]);//error occured [![error occured][2]][2] [1]: https://i.stack.imgur.com/IFbqd.png [2]: https://i.stack.imgur.com/CD1AH.png
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El resultado suele estar envuelto en un tipo con propiedades como esta;

 export type ResponseResult<T> = { status: number; message?: string; data?: T; success?: boolean; };

Reemplace setDatas(data)); con setDatas(data.data)); y ver si eso funciona mejor.

También es posible que tenga problemas ya que la llamada es asíncrona; no se garantiza que tenga los datos listos a menos que inicie sesión en la parte .then() de la llamada.

Algo como

 fetch('products.json') .then(result =>result.json()) .then(x => { setDatas(x.data); console.log(datas); }); setLoading(true);

...Deberia trabajar.

about 4 years ago · Juan Pablo Isaza Relatório

0

Como la respuesta de la API y el estado de configuración son asíncronos, debe verificar que los datos del estado no estén indefinidos, simplemente cambie la línea a:

 if(datas && datas.length>0) console.log(datas[0]);
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