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]);