gpt4 book ai didi

javascript - 使用 Next.js 和钩子(Hook)设置间隔

转载 作者:行者123 更新时间:2023-12-05 03:56:01 26 4
gpt4 key购买 nike

我正在尝试使用 Next.js 和 Hook 实现加载器。

我必须每 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;

最佳答案

好的,所以在这里你有工作间隔

(每 3 秒调用一次 api,并计算它工作了多少次(仅供引用)

在负责Api 调用 的函数中,您应该打开加载器 - 然后每3 秒 再次调用数据


const Home = (props) => {

const [loading, setLoading] = useState(false);
const [check, setCheck] = useState(0)

const callApi = () => {
Here you should call your api + set loader
if fetching(setLoading(true))
if fetched(setLoading(false))
}

useEffect(() => {
const id = setInterval(() => {
callApi()
setCheck(check + 1)
}, 3000);
return () => clearInterval(id);
}, [check])

return (
<React.Fragment>
{loading ? <p>Loading</p> : <p>No Loading</p>}
<p>Times check execute {check}</p>
</React.Fragment>
);
}

关于javascript - 使用 Next.js 和钩子(Hook)设置间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59779473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com