2017-08-12 82 views
0

我目前使用Express.js和React.js,我在考慮如何使某個屬性在頁面刷新時保持不變。Express.js/React.js刷新頁面狀態的持久性

目前我的設置是這樣的:

  • 我有一個陣營組件的複選框(真)設置的默認值。用戶可以點擊複選框以使值爲真/假。
  • 我有一個計時器,其自動註銷用戶和一定量的時間後,破壞了會話(該計時器上的用戶交互自動刷新 - 基本上基於空閒時間)

是否有一個(假設會話仍然有效)
1)存儲複選框的值
2)加載頁面重新加載時複選框的當前值(刷新後使用默認值初始加載)

+2

您應該在客戶端或服務器端使用某種存儲來保存狀態。我可以推薦使用localStorage。 – Dekel

回答

1

將其保存在本地存儲中並設置數據到期的時間。 事情是這樣的forexample:

var timeNow = new Date(); 
var expires = new Date() //set the expiration date 

checkboxGetter(){ 
if (timeNow<=expires){ 
var checkboxGetter = JSON.parse(sessionStorage.getItem('checkbox')); 
} 
else{ 
sessionStorage.removeItem("checkbox"); 
console.log("expired") 
} 
} 

checkboxSetter(checkbox){ 
sessionStrage.setItem('checkbox',JSON.stringify(checkbox)); 
} 

注意,如果你想將數據留在瀏覽器中,當你關閉瀏覽器或其他典型應用該類超支您可以更改的localStorage中的sessionStorage。

+1

這是一個很好的答案。我也結束了使用這個資源:https://lpasslack.gitbooks.io/react-applications-with-idiomatic-redux/content/docs/03-Persisting_the_State_to_the_Local_Storage.html –