javascript - 从 session 存储中设置和获取状态 react

标签 javascript reactjs state

所以我有一个 sidenav,它具有可打开的扩展面板。我正在设置扩展面板打开的state。但是,单击其中一个 sidenav 时,我会被重定向到列表项路径,并且 sidenav 返回到原始状态。在重定向上,我希望 sidenav 的部分保持打开状态。我正在尝试这样做。我不知道为什么它不起作用。

 handleOpen = path => {
    this.setState({ openPath: path });
    sessionStorage.setItem('path', this.state.openPath);
  };

class Sidebar extends React.Component {
  constructor(props){
    super(props);
    let getPath = JSON.parse(sessionStorage.getItem('path'))
  this.state = {
    openPath: getPath
  };

  }

最佳答案

您至少应该展示该组件的使用方式,但乍一看:

sessionStorage.setItem('path', this.state.openPath);

需要

sessionStorage.setItem('path', JSON.stringify(this.state.openPath));

我也会颠倒这些行:

  handleOpen = path => {
    this.setState({ openPath: path });
    sessionStorage.setItem('path', this.state.openPath);
  };

  handleOpen = path => {
    sessionStorage.setItem('path', this.state.openPath);
    this.setState({ openPath: path });
  };

这应该不重要,因为 Javascript 是单线程的,但至少在风格上我喜欢将 setState 作为任何处理程序中的最后一个表达式。

关于javascript - 从 session 存储中设置和获取状态 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53385219/

相关文章:

haskell - 为什么 runState 签名只有状态参数?

javascript - 无法在 JavaScript 类中设置属性

javascript - Canvas简单游戏DRY重构

javascript - 将字符串转换为 JSON 对象以在 React.js 样式标签中使用 style={}

javascript - 使用 universal-cookie 在第一次渲染时获取 cookie 返回 undefined

javascript - 本地镜像未加载到 <Image> react native

javascript - window.getSelection() 在诸如 <strong> 之类的语义元素上

javascript - 有正则表达式匹配 'a-a' 和 'b-b' ,但不匹配 'a-b' ?

javascript - 渲染中的条件语句

java - 替换字符串中的单词