Componentes funcionais onde usamos useState
para definir valores iniciais para nossa variável, se passarmos o valor inicial através de props, ele sempre definirá o mesmo valor inicial até que você não faça uso do useEffect
gancho,
por exemplo, seu caso, isso fará seu trabalho
React.useEffect(() => {
setUser(props.user);
}, [props.user])
A função passada para useEffect será executada depois que a renderização for confirmada na tela.
Por padrão, os efeitos são executados após cada renderização concluída, mas você pode optar por dispará-los apenas quando certos valores forem alterados.
React.useEffect(FunctionYouWantToRunAfterEveryRender)
se você passar apenas um argumento para useEffect, ele executará este método após cada renderização, você pode decidir quando dispará-lo FunctionYouWantToRunAfterEveryRender
passando o segundo argumento para useEffect
React.useEffect(FunctionYouWantToRunAfterEveryRender, [props.user])
como você notou que estou passando [props.user] agora useEffect
só disparará esta FunctionYouWantToRunAfterEveryRender
função quando props.user
for alterada
Espero que isso ajude sua compreensão, deixe-me saber se alguma melhoria é necessária, obrigado