Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

82
Vistas
Agregar objeto dentro de la matriz del estado

Estoy tratando de agregar un objeto en la matriz definida en el estado, que (objeto) obtengo de un niño y luego me muevo hacia el padre, lo configuro en el estado del padre y se lo doy a otro (el código de ese niño está abajo) niño como apoyo. Vi algunas soluciones pero no están funcionando. La solución actual me da un bucle infinito, el elemento de accesorios se agrega una y otra vez. Entonces, mi pregunta es cómo agregar un elemento en la matriz que se define en el estado y el elemento que estamos obteniendo es un accesorio. Aquí está mi código

 import React, { Component } from "react"; import "./ShoppingCart.css"; class ShoppingCart extends Component { constructor(props) { super(props); this.state = { items: [], }; } onAddItem = () => { if(Object.keys(this.props.item).length !== 0) //checking initial empty prop { const item = this.props.item; //an object consist of {id,title,price...etc} //the solution i found on the internet const newList = this.state.items.concat(item); console.log("New List",newList); this.setState({ items:newList }) } }; render() { this.onAddItem(); return ( <React.Fragment> <button className="cart-button"> <img className="shopping-cart-img" src="./images/shopping-cart.png" /> {/* Here will be some code*/} </button> </React.Fragment> ); } } export default ShoppingCart;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Está llamando a la función en cada renderizado y luego configurando el estado, provocando otro renderizado, y luego el renderizado vuelve a llamar a la función... es un bucle infinito.

 render() { this.onAddItem(); // ❌ REMOVE THIS LINE return ( <React.Fragment> <button className="cart-button" onClick={this.onAddItem}> //✅ add onclick event to add item here <img className="shopping-cart-img" src="./images/shopping-cart.png" /> {/* Here will be some code*/} </button> </React.Fragment> );

Actualizar constructor

 constructor(props) { super(props); this.state = { items: [], }; this.onAddItem = this.onAddItem.bind(this)

}

Actualizado en AddItem

 onAddItem = (item) => { const newList = [...this.props.item, item] this.setState({ items: newList }) } };
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda