two*_*nds 5 javascript intervals reactjs
当我网站上的用户更改页面时,我希望停止间隔功能。我在网上搜索“如何判断反应元素在屏幕上是否可见”,但我只能找到交叉观察者的结果。当反应组件卸载时,有没有办法停止间隔函数?(ps.我相信拆卸是指组件不再渲染?)
这是我的组件间隔:
useEffect(() => {
const updatePostInfo =
inView &&
setInterval(() => {
dispatch(getPostInfo(data._id));
}, 3500);
!inView && clearInterval(updatePostInfo);
}, [inView]);
Run Code Online (Sandbox Code Playgroud)
目前,我已经为它设置了一个交叉观察器,这样当它不可见时它就不会调度该函数。但是页面变化时间隔仍然运行?
您需要从效果中返回一个清理函数:
useEffect(() => {
const updatePostInfo = setInterval(() => {
dispatch(getPostInfo(data._id));
}, 3500);
return () => clearInterval(updatePostInfo);
}, []);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |