Các thành phần chức năng nơi chúng tôi sử dụng useState
để đặt giá trị ban đầu cho biến của chúng tôi, nếu chúng tôi chuyển giá trị ban đầu qua các props, nó sẽ luôn đặt cùng giá trị ban đầu cho đến khi bạn không sử dụng useEffect
hook,
ví dụ trường hợp của bạn, điều này sẽ làm công việc của bạn
React.useEffect(() => {
setUser(props.user);
}, [props.user])
Hàm được truyền cho useEffect sẽ chạy sau khi kết xuất được cam kết với màn hình.
Theo mặc định, các hiệu ứng chạy sau mỗi lần hiển thị hoàn tất, nhưng bạn có thể chọn chỉ kích hoạt chúng khi một số giá trị nhất định đã thay đổi.
React.useEffect(FunctionYouWantToRunAfterEveryRender)
nếu bạn chỉ truyền một đối số để useEffect, nó sẽ chạy phương thức này sau mỗi lần hiển thị, bạn có thể quyết định thời điểm kích hoạt điều này FunctionYouWantToRunAfterEveryRender
bằng cách truyền đối số thứ hai cho useEffect
React.useEffect(FunctionYouWantToRunAfterEveryRender, [props.user])
như bạn nhận thấy, tôi đang chuyển [props.user] bây giờ useEffect
sẽ chỉ kích FunctionYouWantToRunAfterEveryRender
hoạt chức năng này khi props.user
được thay đổi
tôi hy vọng điều này sẽ giúp ích cho sự hiểu biết của bạn, hãy cho tôi biết nếu cần có bất kỳ cải tiến nào, cảm ơn