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

255
Visualizações
La función de decremento en Reactjs no funciona

Estoy usando ReactJs y React-dom en la versión 17.02.

Tuve el mismo problema descrito en esta pregunta : un valor para incrementar y disminuir usando el botón. Usé la solución propuesta, cambié mi código anterior.

De este:

 handleDecrement = card => { let cards = [...this.state.cards]; let id = cards.indexOf(card); cards[id] = {...card }; cards[id].quantità --; this.setState({ cards }); }

A este:

 handleDecrement = card => { let cards = [...this.state.cards]; let id = cards.indexOf(card); cards[id] = {...card }; cards[id].quantità = card[id].quantità > 0 ? (card[id].quantità - 1) : 0; this.setState({ cards }); }

Pero veo este error en la consola TypeError: No se pueden leer las propiedades de undefined (leyendo 'quantità') Sé el significado pero no puedo entender POR QUÉ veo este error si "quantità" (cantidad) es un accesorio establecido en cero:

 state = { cards: [ {id:0, nome: 'California', prezzo: 1.99, immagine: california, quantità:0}, {id:1, nome: 'Dragon', prezzo: 3.49, immagine: dragon, quantità:0}, {id:2, nome: 'Dynamite', prezzo: 2.49, immagine: dynamite, quantità:0}, {id:3, nome:'Philadelphia', prezzo:0.99, immagine: philadelphia, quantità:0}, {id:4, nome:'Rainbow', prezzo:2.99, immagine: rainbow, quantità:0}, {id:5, nome:'Shrimp', prezzo:1.49, immagine: shrimp, quantità:0} ] }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No mostró de dónde proviene la referencia a la card en handleDecrement , pero en algún lugar se cambia la referencia para que no funcione en indexOf. En su lugar, cree una nueva lista y evite usar la mutación.

 handleDecrement = card => { const cards = this.state.cards.map(c => c.id === card.id ? {...c, quantità: Math.max(0, c.quantità - 1)} : c); this.setState({ cards }); }
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