我尝试使用GitHub API获取用户数据,但是当我使用fetch()发出请求时,请求直到return()之后才被发送。响应数据只会在页面加载后显示,但是我需要在呈现之前将其用作HTML参数。我知道这与JSON请求是异步的有关,但是我不确定如何修改代码来正确设置数据。
const user = params.get("user");
const [userData, setUserData] = useState(null);
const [reqLimit, setReqLimit] = useState(null);
const getUserData = () => {
fetch(`https://api.github.com/users/${user}`)
.then(response => {response.json();})
.then(json => console.log(json))//'undefined'
.then(json => setUserData(json))
.catch(error => {
console.error('Error:', error);
});
};
useMemo(() => {
fetch(`https://api.github.com/rate_limit`)
.then(response => response.json())
.then(json => {
setReqLimit(json.resources.core);
if (json.resources.core.remaining < 1) {
console.error('Error:', 40
}
});
getUserData();
}, [userData]);
return (
<main>
//userData = null; (Why?)
</main>
)
1条答案
按热度按时间bfhwhh0e1#