Opa, blz? Na prática do dia a dia a gente quer observar poucas variáveis, às vezes dependendo da natureza do dado apenas uma prop já é o suficiente! Mas concordo q se precisar observar muitas props essa abordagem não é viável mesmo. Valeu pelo comentário, abraço!
opa, beleza! As dependencias do useEffect são observadas pelo hook e, em caso de alguma mudança em um desses elementos do array, a função é executada novamente.
Fala André! Se eu entendi bem a sua pergunta, ao invés de usar o setState para alterar o valor do user, você gostaria de mudar esse valor diretamente no objeto: user.active = true. Isso não iria funcionar, pois o setState faz muito mais do que apenas mudar o valor da variável. Ele também é responsável por fazer o componente executar novamente o render e o useEffect. Espero que eu tenha sanado a sua dúvida, qualquer coisa me avisa. Abraço!
Muito bom, amigo!
Problema dessa abordagem na dependência do useEffect é que se tivermos um objeto com diversos itens fica inviável colocar um por um nas dep .
Opa, blz? Na prática do dia a dia a gente quer observar poucas variáveis, às vezes dependendo da natureza do dado apenas uma prop já é o suficiente! Mas concordo q se precisar observar muitas props essa abordagem não é viável mesmo. Valeu pelo comentário, abraço!
É padrão o useEffect com um state no array de dependencias executar na criação do useState inicial?
opa, beleza! As dependencias do useEffect são observadas pelo hook e, em caso de alguma mudança em um desses elementos do array, a função é executada novamente.
Se no exemplo, em vez de usar spread operator, mudar a variável user.active, o use effect continua funcionando?
Fala André! Se eu entendi bem a sua pergunta, ao invés de usar o setState para alterar o valor do user, você gostaria de mudar esse valor diretamente no objeto: user.active = true. Isso não iria funcionar, pois o setState faz muito mais do que apenas mudar o valor da variável. Ele também é responsável por fazer o componente executar novamente o render e o useEffect. Espero que eu tenha sanado a sua dúvida, qualquer coisa me avisa. Abraço!