2017-09-19 41 views
-1

我有一個應用程序與反應和redux。如何使redux商店收聽cookie?

我想讓我的redux商店收聽cookie。

每當cookie過期,在一段時間後,我想調度一個動作,它也會更新相應的商店值。

例如 每當用戶登錄到網站時,可以說我們正在生成一個身份驗證令牌,並且我們希望將它存儲在cookie中,並將有效期限設置爲2小時。

一旦2小時完成,我要派遣一個行動,這將在終極版存儲數據「isAuthenticated」更新到假

的減速可能看起來像這樣

export const user(state ={}, action) 
{ 
    case "cookie_expired": 
    return {...state, isAuthenticated: false} 
} 

,這樣我可以有單一的真相來源,即可以收聽餅乾的還原店

嘗試過 使用setInterval,我可以觀看cookie的可用性,但會是一種解決方法。

有沒有什麼可以實現的方法?

+0

沒有內置事件或回調cookie過期或值更改。 SetInterval似乎是唯一的選擇。 – Fawaz

+0

下載者請分享下載後的原因嗎? – rider

回答

0

我反而只是在Redux中保存一些日期時間值,sessionValidUntil,當時您將isAuthenticated分配爲true。將此新的redux值設置爲當前時間+ 2小時。

然後,無論您目前正在檢查isAuthenticated,我都會檢查一個看起來像這樣的新功能;

(reduxState) => { 
    return (reduxState.isAuthenticated && new Date() < reduxState.sessionValidUntil); 
} 
+0

是的..多數民衆贊成什麼整點是我不想繼續檢查isAuthenticated。 每當cookie過期時,我想讓我的redux商店自動更新 – rider

+0

您是否閱讀過我發佈的全部答案? – gravityplanx

+0

可以說isAUthenticated設置爲true,sessionValidUntil設置爲某個時間。 現在讓所有組件都已經被渲染,並且沒有組件正在更新。 現在,即使我將值設置爲(reduxState.isAuthenticated && new Date() rider