簡體   English   中英

為什么我必須通過 React 中的 useEffect 掛鈎更新內部 state?

[英]Why I have to update inner state through the useEffect hook in React?

也許我對反應流的理解有誤,但有人能解釋一下這個魔法嗎:)

為什么我必須通過 React 中的 useEffect 掛鈎更新內部 state?

我認為組件更新將觸發重寫 useState 鈎子的初始 state。

  const [list, setList] = useState<TabItem[]>(tabs);

  useEffect(() => {
    setList(tabs);
  }, [tabs]);

問題是當 React 重新渲染功能組件時,state hook React.useState(tabs)不會再次執行。

這就是為什么之前的 state 在下一個渲染周期中持續存在的原因。

因此,為了讓您的道具派生到您的內部 state 中,您可以在React.useEffect()鈎子中提供tabs道具,以便 useEffect 回調將再次運行並使用setList(tabs)再次設置 state 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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