![](/img/trans.png)
[英]Make React useEffect only run at initial render and when property changes
[英]i want the useEffect to run only when the props is changed. not on initial run
在下面的代碼中,當組件加載時,useEffect 將加載的 state 更改為 true
let [loaded, setLoaded] = useState(false);
console.log(props.result.meanings);
useEffect(() => {
setLoaded(true);
}, [props.result]);
if (loaded) { \\ the rest of the code
這將導致問題,因為它進入了一個 if 條件,其中 props 值尚未從父組件分配。
我設法通過簡單地創建一個條件來解決這個問題:if (props.result) {}。 這樣,只有當 props 不是 null 並且實際上從父組件接收到值時,它才是正確的。
我完全刪除了 useEffect 。 在那種情況下,這似乎是不必要的,並且可以通過更簡單的方法解決問題。 感謝您的回復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.