我正在尝试从数据库中获取数据。这是一个获取请求。只要我在异步函数中使用获取的数据,一切都可以正常工作。但除此之外,它只是返回“未定义”。
我究竟做错了什么?
感谢您的帮助 :)
const [accountInfos, setAccountInfos] = useState();
const [error, setError] = useState();
const [loading, setLoading] = useState(true);
useEffect(() => {
(async function runEffect() {
const fetchedAccountInfos = await fetchAccountInfos();
if (fetchedAccountInfos && fetchedAccountInfos.length > 0) {
console.log(fetchedAccountInfos) //This console.log works
setAccountInfos(fetchedAccountInfos);
setLoading(false);
console.log(accountInfos) //This console.log returns
"undefined"
} else {
setError("Accountdaten können nicht geladen werden!");
setLoading(false);
};
})();
}, []);
console.log(accountInfos); //This console.log returns "undefined"
它不是特定于 React 的:这是一个异步函数,因此承诺将在控制台日志发生后解决,这就是为什么你会得到undefined
。这只是正常的 JS 行为——值is在 console.log 执行时未定义。
在定义 JSX 的返回值中,如果出现以下情况,则呈现 null(或某些空状态组件):accountinfos
为 null,否则根据 API 的返回值渲染实际组件。一旦收到响应,状态将更新并且组件将重新渲染
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)