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

93
Vistas
¿Cómo agregar a la matriz de estado en los ganchos React?

Tengo un estado establecido como

 const [filteredProducts, setFilteredProducts] = useState([]);

Quiero poder agregar al final de ese estado. actualmente estoy intentando

 products.forEach((product) => { if (product.category === category) { setFilteredProducts([...filteredProducts, product]); } });

Recorre correctamente la matriz de productos. Incluso puedo registrar el producto después de setFilteredProducts y registra los correctos que quiero. Estoy llamando a esto con un onClick.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Encuentre todos los productos que desea agregar:

 const productsToAdd = products.filter(product => product.category === category)

Luego añádelos

 setFilteredProducts((currentFilteredProducts) => ([...currentFilteredProducts, ...productsToAdd]));

El problema con su ejemplo es que los filteredProducts pueden volverse obsoletos después de la primera iteración. setFilteredProducts no se ejecutará sincrónicamente, y filteredProducts mantendrá el valor original, hasta que se vuelva a procesar.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Solo agregaría la última coincidencia a la matriz filteredProducts existente.

Puede agregar todas las coincidencias así:

 setFilteredProducts([...filteredProducts, ...products.filter((product) => product.category === category)]);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Te recomiendo que hagas esto en 2 pasos:

Cree una matriz de los nuevos productos que planea agregar

 let productsToAdd = []; products.forEach((product) => { if (product.category === category) { productsToAdd.push(product); } });

Luego combine las matrices y establezca el estado

 setFilteredProducts([...filteredProducts, ...productsToAdd]);
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