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

482
Visualizações
¿Cómo puedo sumar varios precios JSX desde dentro de una devolución ()?

Tengo un componente en React que recibe una matriz cat que contiene varios objetos. En cada uno de estos objetos, hay un atributo .price.

Lo que espero hacer es sumar todos estos precios e imprimirlos una vez dentro de este mismo componente.

Esto es lo que probé:

 const Basket = ({basket}) =>{ return( <div className = "basketWrapper"> <div className = "paymentWrapper"> let currentTotal = 0; {basket.map((cat, index) => { currentTotal += Math.floor(cat.price); return( <div className = "catsIN"> <h2>Cat: {cat.name}</h2> <p>{cat.name} is: £{cat.price}</p> </div> ) }) } <div> <h4>Your total is: £{currentTotal}</h4> </div> </div> </div> ); } export default Basket;

Sin embargo, cuando ejecuto esto, devuelve un error de que currentTotal no está definido. Entiendo que está fuera del alcance de las funciones del mapa, pero no estoy seguro de cómo lograrlo en este momento. Acabo de trabajar con reaccionar por un corto tiempo.

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

0

Cualquier código que desee ejecutar como parte de su JSX debe estar en {} y let currentTotal = 0; no es parte de una sección de código.

Deberías calcularlo antes, así:

 const Basket = ({basket}) =>{ const total = basket.reduce((prev, cur) => prev + cur.price, 0); return( <div className = "basketWrapper"> <div className = "paymentWrapper"> {basket.map((cat, index) => { currentTotal += Math.floor(cat.price); return( <div className = "catsIN"> <h2>Cat: {cat.name}</h2> <p>{cat.name} is: £{cat.price}</p> </div> ) })} <div> <h4>Your total is: £{total}</h4> </div> </div> </div> ); } export default Basket;
about 4 years ago · Juan Pablo Isaza Relatório

0

Su código nunca establece realmente la variable currentTotal como está en su dom.

Además, usaría la función de reduce para calcular el precio total, aquí están los cambios en el código para que presumiblemente funcione.

 const Basket = ({basket}) =>{ let currentTotal = basket.reduce((c, t) => Math.floor(c.price) + t, 0 ); return( <div className = "basketWrapper"> <div className = "paymentWrapper"> {basket.map((cat, index) => { return( <div className = "catsIN"> <h2>Cat: {cat.name}</h2> <p>{cat.name} is: £{cat.price}</p> </div> ) }) } <div> <h4>Your total is: £{currentTotal}</h4> </div> </div> </div> ); } export default Basket;
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