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

139
Visualizações
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 Respostas
Responde à pergunta

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 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