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

153
Visualizações
TypeError: no se pueden leer las propiedades de undefined (leyendo 'cliente')
import React, { useState, useEffect } from 'react'; import axios from 'axios'; {const CustomerList = () => { const [information, setInformation] = useState([]); const [isLoading, setIsLoading] = useState(true); useEffect(() => { if (isLoading) { axios.get('').then((response) => { setInformation((prevInfo) => { return [...prevInfo, response.data]; }); }); } return () => { setIsLoading(false); }; }, [information, isLoading]); return ( <> <h2>Name: </h2> {information.map((item, index) => ( <div> <div>{item[index].customer.firstName}</div> <div>{item[index].customer.lastName}</div> </div> ))} </> ); }; export default CustomerList;
  1. Estoy obteniendo datos de una API para trabajar usando axios y useeffect
  2. Mapeo a través de la matriz de datos de respuesta y si no hay información en la matriz, la aplicación se rompe
  3. ¿Cómo puedo mapear solo la cantidad específica de elementos en una matriz?
  4. Por ejemplo, si tengo 3 elementos en mi matriz de datos, los mostrará en el navegador desde la declaración de devolución PERO... cuando mapee los 3, continuará intentándolo nuevamente y se romperá, por lo tanto, "el cliente no está definido" porque no no hay más clientes 5. Intenté hacer {item.customer.firstName y obtuve un error de nombre indefinido}

¿Alguna forma de evitar esto? ¡Gracias!

ingrese la descripción de la imagen aquí

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

0

Así no es como funciona el map . Con estos argumentos a la devolución de llamada:

 information.map((item, index) => ...

index es el índice actual cuando se itera sobre la matriz de information , y item es el elemento en ese índice . No es otra copia de toda la matriz. Así que en lugar de esto:

 item[index].customer.firstName

Simplemente harías esto:

 item.customer.firstName

Aparte, al iterar sobre una matriz para generar una lista en React, querrá agregar una key al elemento de nivel superior. Puede usar index para este propósito si lo desea:

 {information.map((item, index) => ( <div key={index}> ... </div> ))}

O si item tiene un identificador único, puede usarlo en su lugar y eliminar index por completo.

about 4 years ago · Juan Pablo Isaza Relatório

0

item[index] no es correcto, ya item se refiere al elemento de la matriz en ese index todos modos.

Forma correcta:

 const data = [1,2,3,4,5,6,7,8,9,10] const mappedData = data.map((d, index) => { console.log("index is", index) console.log("d is", d) console.log("-----------------------------") return d })

Lo que estás tratando de hacer:

 const data = [1,2,3,4,5,6,7,8,9,10] const mappedData = data.map((d, index) => { console.log("index is", index) console.log("d[index] is", d[index]) //undefined since d is not an array console.log("------------------------------") return d })

about 4 years ago · Juan Pablo Isaza Relatório

0

Cuando map() una matriz de elementos, está manejando cada item por separado, por lo tanto, no necesita el index , puede usar el index como key , lea más sobre listas y claves aquí .

 {information.map((item, i) => ( <div key={i}> <div>{item.customer.firstName}</div> <div>{item.customer.lastName}</div> </div> ))}
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