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

179
Vistas
Reaccionar useState: actualice todos los valores de los objetos a verdadero

He definido un objeto de la siguiente manera en un archivo:

 export const items = { first: false, second: false, third: false }

Lo estoy usando en un componente de la siguiente manera:

 import { items } from 'file'; const [elements, setElements] = useState(items);

Tengo un método que se llama cuando se hace clic en un botón; el método debería cambiar todos los valores de los elements a true

El uso de lo siguiente cambia los valores pero no activa una nueva representación del componente (que es lo que necesito)

 Object.keys(elements).forEach(element => elements[element] = true);

¿Cómo puedo usar setElements para actualizar todos los valores en los elements ?

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

0

El problema al que te enfrentas es que estás mutando el objeto de estado, lo que significa que al final, prevState === nextState y React se salen de la representación. Una opción es usar un nuevo objeto y copiar los accesorios de esta manera, usando la misma combinación de Object.keys y forEach pero agregando un paso adicional:

 setState(prevState => { const nextState = {} Object.keys(prevState).forEach(key => { nextState[key] = true }) return nextState })
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