2 回答

TA貢獻1811條經驗 獲得超5個贊
您可以創建自定義 React 掛鉤。有一些庫可以解決這個問題,但涉及的代碼很少,您可以自己解決。
例如,這是來自use-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;
你會像這樣使用它:
const MyComponent = () => {
? useInterval(() => {
? ? // your code here
? }, 5000);
? return null
}

TA貢獻1796條經驗 獲得超4個贊
你能做這個嗎?
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();
添加回答
舉報