【问题标题】:Express.js / React.js persistence of state on page refreshExpress.js / React.js 页面刷新时的状态持久化
【发布时间】:2018-01-20 13:48:16
【问题描述】:

我目前正在将 Express.js 与 React.js 一起使用,并且我正在考虑如何在我刷新页面时使某个属性保持不变。

目前我的设置是这样的:

  • 我为 React 组件的复选框 (true) 设置了默认值。用户可以单击复选框以使值真/假。
  • 我有一个计时器,它会在一定时间后自动注销用户并销毁会话(此计时器会在用户交互时自动刷新 - 基本上基于 idle 时间)

有没有办法将复选框的当前值绑定到会话以便(假设会话仍然有效)
1)存储复选框的值
2) 重新加载页面时加载复选框的当前值(刷新后使用默认值进行初始加载)

【问题讨论】:

  • 您应该在客户端或服务器端使用某种存储来保存状态。我可以推荐使用 localStorage。

标签: javascript node.js reactjs session express


【解决方案1】:

将其保存在本地存储中并设置使数据过期的时间。 比如这样的:

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。

【讨论】:

猜你喜欢
  • 2020-12-01
  • 2015-04-03
  • 2020-06-09
  • 2019-05-19
  • 2018-07-25
  • 2019-04-26
相关资源
最近更新 更多