Para uma variável de estado React que é um objeto, preciso atualizar uma propriedade em um objeto e retornar um novo objeto. Estou comparando as seguintes abordagens:
setFormData(Object.assign({}, formData, {b: 22}));
vs.
setFormData((prevData) => ({
...prevData,
b: 22
}));
Outra opção possível é, sem usar a função de seta,
setFormData( { ...prevData, "b": 22 } )
Tudo isso é válido e há uma razão para usar um em vez de outro?
Ambas as abordagens que você mencionou são válidas e atingem o mesmo objetivo de atualizar uma propriedade em uma variável de estado React, garantindo a imutabilidade.
No entanto, a segunda abordagem com o operador spread dentro de uma atualização funcional é geralmente considerada mais moderna e comumente usada no React porque: