小编Hoa*_*gdz的帖子

useEffect 渲染后不运行

我对 useEffect 是如何触发的以及它是如何工作的感到有点困惑。我写了一个这样的函数,但 useEffect 根本不运行。我想从API获取数据,然后根据数据渲染页面。但它不会触发 useEffect。如果我不使用 useEffect,它将渲染页面三次。

async function getData() {
  var tmpArrData = [];
  await fetch("this API is hidden due to the privacy of the company - sorry")
    .then((res) => res.json())
    .then((data) => {
      console.log("data", data);
      tmpArrData = data;
  });
  console.log("tmpData ", tmpArrData);
  return tmpArrData;
}

function App() {

  const [arrData, setArrData] = useState();
  const [loadData, setLoadData] = useState(false);

  useEffect(() => {
    console.log("if it works, this line should be shown");
    const tmpArrData = getData();
    setArrData(tmpArrData);
  }, [arrData]);


  const data …
Run Code Online (Sandbox Code Playgroud)

async-await reactjs react-hooks use-effect use-state

4
推荐指数
1
解决办法
1万
查看次数