簡體   English   中英

React 組件更新晚了

[英]React component is updating late

我正在使用React.useEffect()並且結果更新較晚。 為什么呢 ?

function Process(props) {
  const [results, setResults] = React.useState({
    number: "",
    f: {}
  });

  let data = props.data; //returns object from another component which changes

  React.useEffect(() => {
    return () => setResults(data)
  }, [data]);

  return (
    <p>{results.number}</p> //ouputs previous number
  );
};

請告訴我您是否需要將props={data}傳遞給Process()組件的組件。

謝謝

如果props.data已經是 useState 就不需要使用另一個 useEffect 和 useState,React 已經處理了,你可以直接使用值

function Process(props) {
   let data = props.data;

  return <p> { data.number } </p>
}

useEffect 函數的返回值是一個函數,它被調用來清除 useEffect 的作用

如果您想在data更改后立即運行 setResults,請在函數體中執行此操作

React.useEffect(() => {
  setResults(data)
}, [data]);

https://reactjs.org/docs/hooks-effect.html

暫無
暫無

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

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