簡體   English   中英

我希望 useEffect 僅在道具更改時運行。 不在初始運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM