如何接收功能组件上快递发送的数据?

IT技术 javascript node.js reactjs express
2021-05-10 07:29:33
function Header(props) {  
  const [ serverData, setServerData ] = useState({});

  fetch('http://localhost:4001/api')
      .then(res => res.json())
      .then((data) => {
        setServerData(data);
        console.log(data);
      });

  return (
      <div>{serverData}</div>
  );
}

我正在尝试使这个功能性 React 组件从 express api 获取数据。

我的代码编辑器一直关闭,我认为接收数据部分在循环中。

如何让这个功能组件只获取一次数据,而不使用 componentdidmount 或类类型组件。

我试过 useCallback,它对我不起作用..

1个回答

如果您想这样做,请使用 useEffect 钩子。If 将发生一次,除非依赖项发生变化(此处未列出依赖项)。

function Header(props) {  
  const [ serverData, setServerData ] = useState({});

  useEffect(() => {
    fetch('http://localhost:4001/api')
      .then(res => res.json())
      .then((data) => {
        setServerData(data);
        console.log(data);
      });
  }, []);

  return (
      <div>{serverData}</div>
  );
}