Komponenty funkcjonalne, w których używamy useState
do ustawiania wartości początkowych naszej zmiennej, jeśli przekażemy wartość początkową przez właściwości, będzie ona zawsze ustawiała tę samą wartość początkową, dopóki nie użyjesz useEffect
hooka,
na przykład w twoim przypadku to wykona twoją pracę
React.useEffect(() => {
setUser(props.user);
}, [props.user])
Funkcja przekazana do useEffect zostanie uruchomiona po zatwierdzeniu renderowania na ekranie.
Domyślnie efekty są uruchamiane po każdym ukończonym renderowaniu, ale możesz je uruchomić tylko wtedy, gdy zmienią się określone wartości.
React.useEffect(FunctionYouWantToRunAfterEveryRender)
jeśli przekażesz tylko jeden argument do useEffect, będzie on uruchamiał tę metodę po każdym renderowaniu, możesz zdecydować, kiedy to uruchomić FunctionYouWantToRunAfterEveryRender
, przekazując drugi argument do useEffect
React.useEffect(FunctionYouWantToRunAfterEveryRender, [props.user])
jak zauważyłeś, przechodzę przez [props.user] teraz useEffect
uruchomi tę FunctionYouWantToRunAfterEveryRender
funkcję tylko wtedy, gdy props.user
zostanie zmieniona
Mam nadzieję, że pomoże to w zrozumieniu, daj mi znać, jeśli wymagane są jakieś ulepszenia, dziękuję