Javascript 如何在下一个js中使用本地或会话存储
当我从ssr应用程序得到响应时,我试图将项设置为会话存储,但它显示了一个错误,即未定义会话存储,因为在服务器端并没有这样的存储,只有cookie,但我不需要它Javascript 如何在下一个js中使用本地或会话存储,javascript,reactjs,local-storage,next.js,server-side-rendering,Javascript,Reactjs,Local Storage,Next.js,Server Side Rendering,当我从ssr应用程序得到响应时,我试图将项设置为会话存储,但它显示了一个错误,即未定义会话存储,因为在服务器端并没有这样的存储,只有cookie,但我不需要它 因此,我的问题是如何在NextJS中从getInitialProps将项目设置为SessionStorage调用getInitialProps时,无法将项目设置为SessionStorage,因为getInitialProps是在服务器端运行的 调用窗口对象的方法时,可以首先确定窗口对象是否未定义 如果你用钩子 useEffect((
因此,我的问题是如何在NextJS中从getInitialProps将项目设置为SessionStorage调用
getInitialProps
时,无法将项目设置为SessionStorage,因为getInitialProps
是在服务器端运行的
调用窗口对象的方法时,可以首先确定窗口对象是否未定义
如果你用钩子
useEffect(() => {
if (window) {
// set props data to session storage or local storage
}
}, []);
getInitialProps
将在客户端或服务器端执行。因此,您需要在服务器端阻止访问会话存储
Page.getInitialProps = async (context) => {
if (typeof window !== 'undefined') {
window.sessionStorage.set('item', 'itemValue')
}
}