小程序做了websocket连接需要一个定时器实时获取数据并更改 这个时候就需要一个定时来,实现这一个功能。但在hooks中的,定时器的使用存在很多的问题。
封装一个定时器
import * as React
from 'react';
function useInterval (callback
, delay
) {
const savedCallback
= React
.useRef();
React
.useEffect(() => {
savedCallback
.current
= callback
;
}, [callback
]);
React
.useEffect(() => {
function tick () {
savedCallback
.current();
}
if (delay
!== null) {
let id
= setInterval(tick
, delay
);
return () => clearInterval(id
);
}
}, [delay
]);
}
export default useInterval
使用定时器
useInterval(() => {
if (notify
.count
.unread
!== news
) {
setLoad(false)
setNews(notify
.count
.unread
)
} else {
setLoad(true)
}
}, 0)
参考链接:https://www.jianshu.com/p/5cb3a84dd40b 参考链接:https://juejin.im/post/6844903777925857294