reactjs 为什么我的setStateAction没有更新json响应数据?

pn9klfpd  于 2022-12-29  发布在  React
关注(0)|答案(1)|浏览(117)

我尝试使用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>
)
bfhwhh0e

bfhwhh0e1#

fetch(`https://api.github.com/users/${user}`)
      .then(response => response.json();) // return json
      //.then(json => console.log(json))//'undefined' remove this from here
      .then(json => setUserData(json))
      .catch(error => {
        console.error('Error:', error);
      });

相关问题