2 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以創(chuàng)建自定義 React 掛鉤。有一些庫(kù)可以解決這個(gè)問(wèn)題,但涉及的代碼很少,您可以自己解決。
例如,這是來(lái)自u(píng)se-interval?NPM 包的源代碼:
import { useEffect, useRef } from 'react';
const useInterval = (callback, delay) => {
? const savedCallback = useRef();
? useEffect(
? ? () => {
? ? ? savedCallback.current = callback;
? ? },
? ? [callback]
? );
? useEffect(
? ? () => {
? ? ? const handler = (...args) => savedCallback.current(...args);
? ? ? if (delay !== null) {
? ? ? ? const id = setInterval(handler, delay);
? ? ? ? return () => clearInterval(id);
? ? ? }
? ? },
? ? [delay]
? );
};
export default useInterval;
你會(huì)像這樣使用它:
const MyComponent = () => {
? useInterval(() => {
? ? // your code here
? }, 5000);
? return null
}

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
你能做這個(gè)嗎?
let to = null;
function keepAlive() {
//Assign a reference to clear the interval
to = setInterval(() => {
if (
props.isAuthenticated === true &&
API.getAccessTokenFromLocalStorage()
) {
props.keepTokenAlive();
} else {
// If not passing the condition, clear the interval
clearInterval(to);
}
}, 100000); // 1000ms =1sec
}
keepAlive();
添加回答
舉報(bào)