[英]I am getting Promise <Pending> when using mongoose find() function
[英]Promise pending when calling a function inside a hook using React
我正在使用 axios 从 API(对象的 arr)中提取数据,但由于某种原因,当我在挂钩中调用它时,我一直在等待 promise。
我使用 promise 链接来确保代码同步执行但它仍然是相同的。
例如,当我使用“console.log(selectedVideo[0]”时,我得到“undefined”。我认为这是因为它在完成提取数据之前调用了 API,对吗?
const url = `${baseURL}videos?api_key=${apiKEY}`;
const fetchData = axios
.get(url)
.then((resp) => setSelectedVideo(resp.data));
useEffect(() => {
fetchData();
}, []);
// sets the state for the video
const [selectedVideo, setSelectedVideo] = useState(fetchData);
console.log(selectedVideo);
这段代码将在每个组件重新渲染时执行,即使fetchData
结果不是function
,它也是undefined
的(从setSelectedVideo
返回),您需要将fetchData
变为 function。
此外,由于数据来自API
,您需要为null
state
一个empty object
我认为你正在寻找的是。
const url = `${baseURL}videos?api_key=${apiKEY}`;
const fetchData = () => axios
.get(url)
.then((resp) => setSelectedVideo(resp.data));
useEffect(() => {
fetchData();
}, []);
const [selectedVideo, setSelectedVideo] = useState(null);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.