2017-08-12 42 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 –