我正在尝试使用Next.js和hooks实现一个加载器。
我必须每隔3分钟执行一次提取来检查新数据,当这种情况发生时,我希望使用加载状态。
我创建了一个setLoading
,它从false
开始,在setInterval
传递到true
的内部,但我不知道为什么不工作。
下面是我的代码:
import React, { useState, useEffect } from "react";
import Context from "../../config/Context";
import { checkNewData } from "../../helper/index";
function Home() {
const [contentLoading, setLoading] = useState(false);
const data = context.events[0];
useEffect(() => {
setInterval(() => {
if (data.live == false) {
setLoading(true);
checkNewData();
}
setLoading(false)
}, 10000);
return (
<React.Fragment>
{contentLoading ? <p>loading</p> : <p>no loading</p>
</React.Fragment>
);
}
export default Home;
2条答案
按热度按时间ehxuflar1#
好了,这里是工作间隙
(每3秒调用一次API,并计算其工作次数(仅供参考)
在负责Api调用的函数中,您应打开加载程序-然后每3秒再次调用数据
mqkwyuun2#
一个更好的方法是使用
SWR
这样的插件,它可以无缝地处理数据获取甚至加载状态。https://swr.vercel.app