Функциональные компоненты, в которых мы используем useState
для установки начальных значений нашей переменной, если мы передаем начальное значение через реквизиты, оно всегда будет устанавливать одно и то же начальное значение, пока вы не используете useEffect
ловушку,
например, в вашем случае это сделает вашу работу
React.useEffect(() => {
setUser(props.user);
}, [props.user])
Функция, переданная в useEffect, будет запущена после фиксации рендеринга на экране.
По умолчанию эффекты запускаются после каждого завершенного рендеринга, но вы можете активировать их только при изменении определенных значений.
React.useEffect(FunctionYouWantToRunAfterEveryRender)
если вы передадите только один аргумент для useEffect, он будет запускать этот метод после каждого рендеринга, вы можете решить, когда его запускать FunctionYouWantToRunAfterEveryRender
, передав второй аргумент в useEffect
React.useEffect(FunctionYouWantToRunAfterEveryRender, [props.user])
как вы заметили, я передаю [props.user], теперь useEffect
эта FunctionYouWantToRunAfterEveryRender
функция будет запускаться только при props.user
изменении
Надеюсь, это поможет вам понять, дайте мне знать, если требуются какие-либо улучшения, спасибо