我目前正在尝试sessionStorage
在渲染发生之前将项目保存到其中。
我的代码是这样的:
componentWillMount() {
sessionStorage.setItem("isUserLogged", false);
}
但是,它说“sessionStorage
未定义”。sessionStorage
在渲染发生之前如何在 React 中使用?
我目前正在尝试sessionStorage
在渲染发生之前将项目保存到其中。
我的代码是这样的:
componentWillMount() {
sessionStorage.setItem("isUserLogged", false);
}
但是,它说“sessionStorage
未定义”。sessionStorage
在渲染发生之前如何在 React 中使用?
使用服务器端渲染时,SessionStorage 不可用(您可以模拟它,但用户无法使用数据)。
它仅在浏览器中可用https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
写入存储的示例
window.sessionStorage.setItem("key", "value");
从存储使用中检索项目
window.sessionStorage.getItem("key");
我正在使用next并使用react effect来解决问题,解决方法如下:
import React from 'react';
function Cookies() {
const [accepted, setAccepted] = React.useState(false);
React.useEffect(() => {
if (window.sessionStorage.getItem('cookies')) {
setAccepted(true);
}
}, []);
function acceptPolicy() {
sessionStorage.setItem('cookies', true);
setAccepted(true);
}
return !accepted ? (
<></>):(<></>)}
只读 sessionStorage 属性访问当前源的会话 Storage 对象。sessionStorage 类似于 localStorage;不同的是,localStorage 中的数据不会过期,而 sessionStorage 中的数据会在页面会话结束时被清除。