useEffect 中的异步方法

useEffect 中的异步方法

假设我们在 useEffect 中请求 API,从中获取一些服务端数据,通常需要将请求方法写成异步的,比如这样:

React.useEffect(async () => {
  const url = `${API}/get-profile?id=${userId}`;
  const res = await fetch(url);
  const json = await res.json();
  setUser(json.user);
}, [userId]);

按照上面这种写法,将会得到错误信息:destroy is not a function

正确的做法应该是:

React.useEffect(() => {
  async function runEffect() {
    const url = `${API}/get-profile?id=${userId}`;
    const res = await fetch(url);
    const json = await res.json();
    setUser(json);
  }
  
  runEffect();
}, [userId]);

你可能感兴趣的:(前端,javascript,reactjs)