定期触发React效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定期触发React效果相关的知识,希望对你有一定的参考价值。

考虑以下简单的React组件,其效果是获取一些数据并将其保存为组件状态:

function MyComponent(props) {
  const [data, setData] = useState([]);

  useEffect(() => {
    const fetchData = async () => {
      const res = await fetch("data.json");
      setData(await res.json());
    };
    fetchData();
  }, []);

  return (
    <></>
  )
}

将这种效果设置为定期运行(例如每分钟)的正确方法是什么?

难道就像用fetchData()取代setInterval(fetchData, 60)一样容易,还是我应该考虑其他React特定的考虑?

答案

就像用setInterval(fetchData,60)替换fetchData()一样容易吗?>>

仅在卸下组件时确保执行clearInterval(返回useEffect())。

useEffect(() => {
  const fetchData = async () => {
    const res = await fetch("data.json");
    setData(await res.json());
  };

  const t = setInterval(fetchData, 60000);

  return () => clearInterval(t); // clear
}, []);
另一答案

还有我应该考虑的其他特定于React的考虑吗?

以上是关于定期触发React效果的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

javascript 用于在节点#nodejs #javascript内设置react app的代码片段

定期后台同步

片段创建的 Intent 不会触发 onNewIntent

导航到另一个片段时触发 API 调用

撤消 takeUntil 对触发 rxjs 中另一个动作的影响