ส่วนประกอบการทำงานที่เราใช้useState
ในการตั้งค่าเริ่มต้นให้กับตัวแปรของเราหากเราส่งค่าเริ่มต้นผ่านอุปกรณ์ประกอบฉากมันจะกำหนดค่าเริ่มต้นเดียวกันเสมอจนกว่าคุณจะไม่ใช้useEffect
hook
เช่นกรณีของคุณสิ่งนี้จะทำงานของคุณ
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
มีการเปลี่ยนแปลงเท่านั้น
ฉันหวังว่านี่จะช่วยให้ความเข้าใจของคุณแจ้งให้เราทราบหากจำเป็นต้องมีการปรับปรุงใด ๆ ขอบคุณ