首页 > 解决方案 > 是否有任何替代方法可以避免在服务器端下一个 js 上未定义 localStorage 这个错误?

问题描述

export const getServerSideProps = wrapper.getServerSideProps(async (ctx) => {
    const access_token = cookies(ctx).access_token;
    await ctx.store.dispatch(getData(access_token));
    if (localStorage){
        localStorage.setItem("token", "1234");
        console.log(localStorage.getItem("token"));
    }

});

此行未定义 localStorage if (localStorage){}

标签: reactjsnext.js

解决方案


将您的令牌存储为 Cookie 而不是 LocalStorage。

document.cookie = "username=John Doe; expires=Thu, 30 Jan 2021 12:00:00 UTC; path=/";

并从“req.headers.cookie”访问 getInitialProps 或服务器端方法


推荐阅读