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

132
Vistas
Qué método usar al actualizar el estado dentro de React.useReducer

Imaginemos un simple reductor:

 const [state, setState] = React.useReducer(myReducer, {})

Y myReducer con un solo caso (versión simplificada):

 const myReducer = (state, action) => { switch (action.type) { case 'UPDATE_STATE': { // Code to update here... } } }

Ahora, cuál de las siguientes afirmaciones es la más adecuada para actualizar un estado y por qué:

NOTA: payload = state .

MÉTODO 1

 case 'UPDATE_STATE': { const updatedState = action.payload updatedState.object = true return updatedState }

MÉTODO 2

 case 'UPDATE_STATE': { const updatedState = action.payload updatedState.object= true return { ...state, updatedState } }

MÉTODO 3

 case 'UPDATE_STATE': { const updatedState = action.payload updatedState.object= true return { ...state, ...updatedState } }

MÉTODO 4

 case 'UPDATE_STATE': { return ({ ...state, object: true }) }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que deberías usar el método 4. No estás mutando el estado aquí, que es la forma de Reaccionar.

 case 'UPDATE_STATE': { return ({ ...state, object: true }) }

Nota: Operador de propagación ... crea diferentes referencias hasta un solo nivel.

EDITAR: Según los comentarios, aquí hay un ejemplo simple de cómo podría estar mutando el estado, incluso con los objetos más simples si no está usando ... .

 let state = { object : true}; let payload = state; state.object = false; console.log(state); console.log(payload);

Incluso con ... es posible que tenga objetos profundamente anidados. Tendrán el mismo problema, a menos que quieras extenderte en todos los niveles. Hay bibliotecas para ayudarte con objetos profundos como immutable.js.

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