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

191
Visualizações
¿Los objetos de estado de retroceso reaccionan silenciosamente inmutables?

Estoy usando el retroceso de reacción para la gestión de mi estado y tengo un objeto moderadamente anidado que sirve como estado para este componente en particular.

Cuando trato de actualizar el estado con setState (la versión Recoil, sospecho que Vanilla React useState se comportaría de manera similar), tomo la versión anterior del objeto e intento mutarlo un poco antes de devolver el estado actualizado. Pero la reasignación de valores en este objeto falla completamente en silencio, no veo advertencias, pero la asignación de un nuevo valor no tiene ningún efecto. Ejemplo:

 import { useRecoilState} from "recoil"; ... const [state, setState] = useRecoilState(sampleState); const someCallback = () => { setState((oldState) => { const newState = { ...oldState }; console.log(newState.dog.paw); // false newState.dog.paw = true //stopping the debugger here and trying to reassign in the devtools has equally no effect console.log(newState.dog.paw); // false return newState ; }); };

al reasignar durante una sesión de depuración en pausa en las herramientas de desarrollo de Chrome, sucede lo siguiente:

 newState.dog.paw = true true newState.dog.paw false

Soy consciente de que la documentación de React dice que no es aconsejable mutar el objeto de estado directamente, pero de eso a explicar lo que está sucediendo arriba hay un vacío que no sé cómo llenar.

De hecho, también sé cómo solucionar el problema, la solución es reasignar el objeto principal de esta manera:

 newState.dog = {...newState.dog, paw:true}

Habiendo dicho todo eso, estaría agradecido por una visión más profunda sobre lo que está sucediendo allí y por qué este fenómeno se comporta de manera tan extraña en el intérprete/devtools -> la reasignación parece realizarse pero no tiene ningún efecto.

about 4 years ago · Juan Pablo Isaza
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