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

199
Visualizações
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'id')

Me sale indefinido porque item de cartitems no está indefinido, ¿cómo puedo solucionarlo?

1.

 import React,{useState} from 'react' import {products} from './data' function app() { const [cartitems, setCartitems] = useState([]) const onAddToCart = (product)=>{ const exist = cartitems.find((item)=> { return product.id == item.id }) if(exist){ setCartitems(cartitems.map((item)=>{ item.id == product.id ? {...exist, qnty: exist.qnty + 1}: item })) } else{ setCartitems([...cartitems, {...product, qnty: 1}]) } } return ( <div> {products.map((product)=>( <div key={product.id}> <img src={product.image} style= {{width:"200px"}}/> <p>{product.name}</p> <button onClick={() => onAddToCart(product)}>Add To Cart</button> </div> ))} </div> ) } export default app

 export const products = [ { id: '1', name: 'MacBook', price: 1400, image: 'https://picsum.photos/id/180/2400/1600', }, { id: '2', name: 'Old Car', price: 2400, image: 'https://picsum.photos/id/111/4400/2656', }, { id: '3', name: 'W Shoes', price: 1000, image: 'https://picsum.photos/id/21/3008/2008', }, ]

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

0

esto puede solucionar su problema:

1- no devolviste nada del mapa

2- es mejor usar el tipo de función en estado establecido para elementos de carrito

 function app() { const [cartitems, setCartitems] = useState([]) const onAddToCart = (product)=>{ const exist = cartitems.find((item)=> { return product.id == item.id }) if(exist){ setCartitems(cartitems.map((item)=> item.id == product.id ? ({...exist, qnty: exist.qnty + 1}): item )) } else{ setCartitems(s=>[...s, {...product, qnty: 1}]) } }
about 4 years ago · Juan Pablo Isaza Relatório

0

Problema

En su renderizado inicial, está intentando acceder a una propiedad que no existe. en otras palabras, en su representación inicial, sus products son una matriz vacía

Solución

Usar circuitos cortos

 {products && products.map((product) => ( <div key={product.id}> <img src={product.image} style={{ width: "200px" }} /> <p>{product.name}</p> <button onClick={() => onAddToCart(product)}> Add To Cart </button> </div> ))}
about 4 years ago · Juan Pablo Isaza Relatório

0

El problema es: no devuelves nada aquí en .map . Es por eso que te estás volviendo undefined .

 setCartitems(cartitems.map((item)=>{ item.id == product.id ? {...exist, qnty: exist.qnty + 1}: item }))

Simplemente elimine { y } :

 setCartitems(cartitems.map((item)=> item.id == product.id ? {...exist, qnty: exist.qnty + 1}: item ))

O agregue return explícitamente:

 cartitems.map(item => { if (item.id == product.id) { return { ...exist, qnty: exist.qnty + 1 } } return item })
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