亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 reactjs 中每 5 分鐘發送一次動作

如何在 reactjs 中每 5 分鐘發送一次動作

蕪湖不蕪 2023-05-18 10:08:46
我試圖每 5 分鐘發送一次動作。一旦用戶登錄,它就必須調度操作。它將在每 5 分鐘后開始調度操作。我嘗試使用setInterval,但這里的問題是即使我注銷它也會繼續執行調度操作。這是我的代碼,我在我的 app.js 中定義了這個 keepAlive 函數,我將整個應用程序包裝到 redux store 中。這是isAuthenticated布爾函數。如果isAuthenticated是 true 并且只有在我想派遣行動時才API.getAcessToken可用。localstorage  function keepAlive() {    if (      props.isAuthenticated === true &&      API.getAccessTokenFromLocalStorage()    ) {      setInterval(() => {        props.keepTokenAlive();      }, 100000); // 1000ms =1sec    } else {      return null;    }  }  keepAlive();
查看完整描述

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

}


查看完整回答
反對 回復 2023-05-18
?
SMILET

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();


查看完整回答
反對 回復 2023-05-18
  • 2 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號