在 React 的 useEffect 钩子中的 promise 内设置状态

时间:2021-06-10 19:35:40

标签: reactjs fetch

我一直在试图弄清楚为什么我的代码现在一个小时不起作用。所以基本上我想从 MySQL 数据库中获取一些数据,我的服务器端代码按预期工作,但是每当我尝试使用以下代码设置在客户端中获取它时,状态就会失败:

const [data, setData] = useState(null);

  useEffect(() => {
    const loadData = () => {
      fetch("http://localhost:5000/getusers")
        .then((response) => response.json())
        .then((data) => {
          setData(data); // data is undefined but when consoled-out it's in proper form
        });
    };
    loadData();
    console.log(data);
  }, [data]);

data 是一个对象数组。我假设我不能在承诺中传递 setState 因为我已经添加了一个条件来呈现数据所以即使它是 null 它也不会呈现但我收到一个 TypeError: data.map is not a function (它会是如果有人能解释这是如何发生的,那就太好了)。

0 个答案:

没有答案