在React中启动并使用sessionStorage?

Jos*_*ran 5 javascript reactjs

我正在尝试在渲染发生之前保存我的sessionStorage.

我的代码是这样的:

componentWillMount() {
        sessionStorage.setItem("isUserLogged", false);
    }
Run Code Online (Sandbox Code Playgroud)

sessionStorage没有定义导致错误.如何sessionStorage在渲染发生之前初始化我的React?

mle*_*eko 12

使用服务器端呈现时,SessionStorage不可用(您可以模拟它,但数据将无法供用户使用).

它仅在浏览器中可用https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

写入存储的示例

window.sessionStorage.setItem("key", "value");
Run Code Online (Sandbox Code Playgroud)

从存储使用中检索项目

window.sessionStorage.getItem("key");
Run Code Online (Sandbox Code Playgroud)

  • 这是一个老问题,但是你可以指出sessionStorage在组件安装时会起作用.那是定义`sessionStorage`的时刻. (3认同)
  • 答案是正确的,它仅在客户端可用。然而,为了正确回答上述问题,IMO 答案应该表明您可以在 componentDidMount 中利用它......这发生在 React 组件完全是客户端之后。您使用的模式是使用默认设置初始化状态变量,然后在安装组件后使用会话信息更新它。 (2认同)