Next.js 中未定义 localstorage

2024-02-16

我正在尝试将应用程序从 React 移至 Next

在 React 中我没有收到此代码的错误

let [authTokens, setAuthTokens] = useState(() => localStorage.getItem('authTokens') ? JSON.parse(localStorage.getItem('authTokens')) : null)

let [user, setUser] = useState(()=> localStorage.getItem('authTokens') ? jwt_decode(localStorage.getItem('authTokens')) : null)

但是当我尝试在 Next 中使用它时,出现错误

我认为这是因为 Next 首先在服务器端渲染,并且服务器端没有本地存储。

这是设置本地存储的功能。

let loginUser = async (e) => {
        e.preventDefault();
        let response = await fetch('http://127.0.0.1:8000/api/token/', {
            method:'POST',
            headers:{
                'Content-Type': 'application/json'
            },
            body:JSON.stringify({'email':e.target.username.value, 'password':e.target.password.value})
        })
        let data = await response.json()
        console.log(data)
        console.log(data.access)
        if(response.status == 200) {
            setAuthTokens(data)
            setUser(jwt_decode(data.access))
            localStorage.setItem('authTokens', JSON.stringify(data))
            router.push('/')
        } else {
            alert('something went wrong')
        }
    }

当您的应用程序在服务器上呈现时,没有browser那里有 API。 您需要做的是访问localStorage仅当应用程序在浏览器中呈现时。您可以通过等待组件安装然后访问localStorage

function MyComponent(){
  // this runs only in the browser
  useEffect(()=>{
  // access local storage here
  },[])
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Next.js 中未定义 localstorage 的相关文章

  • Macbook React Native 安装

    npm WARN checkPermissions 缺少写入权限 usr local lib node modules npm 错误 路径 usr local lib node modules npm 错误 代码 EACCES npm 错误
  • Google 地图在某些浏览器上不被识别为矢量地图

    我已经构建并部署了一个 next js 应用程序 该应用程序在 react google maps api 的帮助下显示地图 此外 我使用 Google 地图 数据驱动 API 来创建显示邮政编码边界的要素图层 我已将其部署到 Vercel
  • 反应多个高阶组件

    我刚刚发现在我的 React 项目中使用 HOC 的惊人好处 我的问题是在组件上调用多个 HOC 函数会对性能造成影响吗 Example export default withState withLabel withTheme MyComp
  • 缩小 React 代码时如何保留注释?

    我在 React 应用程序中有以下 JSX render return div A JSX comment div 我正在使用 webpack 来编译和缩小代码 在我的 webpack 插件中 我使用 UglifyJsPlugin 来尝试保
  • React jest 和 MSAL 收到 BrowserAuthError

    我正在尝试测试一些使用 MSAL 进行身份验证的组件 到目前为止 我有一个简单的测试 测试我的组件是否可以渲染 如下所示 let container beforeEach gt container render
  • 如何使用本机反应在选项卡导航下的页脚文本中设置图像

    我需要设置所有页面上都有图像和文本的页脚 我已经使用了 React Native TabNavigator 问题是页脚文本以大写形式显示 并且背景颜色没有更改并且无法在页脚中设置图像 tabBarPosition bottom tabBar
  • Nginx:在同一服务器上为多个 React 应用程序提供服务

    我正在尝试在同一服务器上设置多个 React 应用程序 问题是在我构建项目之后 index html from build 已找到 但辅助文件来自build static不是 最初 我只用一个应用程序location static 有别名
  • 在react js上显示浏览器后退按钮事件的警报

    我必须在 React js 上的浏览 器返回事件上显示警报 我尝试过使用addEventListener但我不确定在 React 页面中将代码放在哪里 我应该放置在任何生命周期挂钩中还是渲染中 我不知道 请帮帮我 如果您使用 React h
  • 在 React 组件中动态创建元素

    我创建了一个辅助函数 当我单击按钮时 它可以在组件中动态创建元素 但是它没有显示我尝试附加到父 div 的 html 的一半 它正确地将标签添加为 html 但其余部分只是纯文本 谁能明白为什么吗 用于动态创建内容的函数 function
  • 如何将 props 传递给模态

    我有一个购物应用程序 我可以在其中映射一些产品并将它们呈现在屏幕上 用户可以增加 减少数量 当数量达到 1 并且用户点击减少时 一些中间件会介入并询问他们是否确定要将其从购物篮中删除 如果他们单击 否 则会关闭模式并将其留在购物篮中 如果他
  • 如何覆盖 CSS 模块文件中的全局 CSS?

    让我们说在我的global css我有一个 Next js 项目的文件 flex display flex justify content center align items center height 100 我也有一个Layout j
  • 使用反应测试库提交带有数据的单元测试表单

    我有一个带有表单的反应组件 我想对表单是否使用正确的数据提交进行单元测试 使用 jest 和 RTL 这是我的组件和单元测试方法 成分 class AddDeviceModal extends Component handleOnSave
  • 画布已投入使用。必须先销毁 ID 为“0”的图表,然后才能重新使用画布。图表.JS

    我已经有了图表的数据 我不需要在图表中收到警告 不需要破坏图表 在不破坏图表的情况下更新日期 我用了 myChart 更新 但这不起作用是否还有其他方法可以解决上述错误 const TapsGraphCard props any gt va
  • Redux 更新嵌套数据 [不可变更新模式]

    任何人都可以帮助解决此更新模式 我没有使用任何像 immer 这样的库 我必须更新嵌套对象 数据看起来像 dis 样本数据 isFetching false data nba stack 1 我的减速机 state isFetching f
  • fetch API 不通过 post 发送数据

    我在使用 Fetch API 通过 post 发送数据时遇到问题 服务器只收到一个空的 JSON 有人能帮我吗 基本上 我正在更新状态数据并将其发送到 API 提交的数据 请求 submitedData async event gt eve
  • React-i18next 出现错误尝试导入错误

    我尝试使用https react i18next com https react i18next com 对于本地化 我收到错误 尝试导入错误 initReactI18next 未从 react i18next 导出 这是我的 i18n j
  • ReactJS:onClick函数在单击按钮之前执行

    功能SendCred 执行页面正在加载 但我希望在用户单击时调用它
  • 反应:无效的挂钩调用。钩子只能在函数组件体内调用

    我花了两天时间试图了解错误在哪里 知道吗 App js import React useState useEffect from react import Menu from components Menu function App ret
  • 如何使用 useQuery 挂钩来填充其他挂钩中的状态?

    我最近一直在处理一些与钩子相关的问题 因为我一直在我的一个项目中实现钩子 我不断收到错误 渲染的钩子数量比上一次渲染期间的钩子数量多 看来我能让代码正常工作的唯一方法是将 useQuery 挂钩放在所有其他挂钩之后 然而 这是一个问题 因为
  • React.js 的状态基于其他状态

    我遇到了 React js 的一些问题 并且在调用 setState 时状态没有立即设置 我不确定是否有更好的方法来解决这个问题 或者这是否真的只是 React 的一个缺点 我有两个状态变量 其中一个基于另一个 原始问题的小提琴 http

随机推荐

  • 在 Graphviz 中对齐排名

    这是一个后续问题如何实现graphviz dot的严格反向排名 https stackoverflow com questions 47396374 how can i achieve strict reverse ranking of g
  • 如何使用Hibernate准备一个大的txt文件来批量插入?

    我试图将超过 200k 行插入 SQL 数据库 每行代表一个卡信息 70 字符串字段 在大型 TXT 文件中 我 新的 Java 开发人员 在这方面面临着相当困难的时期 我的方法是 读取文件 File file ReadFile loadC
  • 如何在 TensorFlow 2.0 中使用 tf.Lambda 和 tf.Variable

    我对 TensorFlow 2 0 非常陌生 我为循环 GAN 编写了如下代码 我仅提取用于构建生成器神经网络的代码 def instance norm x epsilon 1e 5 scale tf Variable initial va
  • 如何通过表单外的按钮提交表单?

    我想通过表单外部的按钮提交表单并对该表单进行验证 我正在使用react bootstrap 中的Form 标签 我的代码不验证表单
  • 类(静态)变量和方法

    我如何创建课程 即static https en wikipedia org wiki Method computer programming Static methods Python 中的变量或方法 在类定义内部但不在方法内部声明的变量
  • 使用 Boto 返回 CloudFormation 模板的输出?

    我正在尝试使用 Boto 从 CloudFormation 模板检索输出列表 我在文档中看到有一个名为boto cloudformation stack Output 但我认为这是未实现的功能 目前这可能吗 如果你做一个describe s
  • 如何在 iPython 笔记本中设置默认启动命令?

    我想在我创建的每个新笔记本中的几乎每个新笔记本中放置几个 带有我需要的命令的单元格 例如 当我创建一个新笔记本时 它应该放置一个 matplotlib inline import matplotlib pyplot as plt 默认在单元
  • 如何将变量值从 javascript 传递到 perl

    我正在使用 JavaScript 插件来获取 IP 地址 如果 IP 地址开头为10 15我想为一个变量分配一个值 如果IP以10 13我想为同一个变量分配不同的值 我不知道该变量是否必须在 Perl 或 JavaScript 中 我正在尝
  • Sencha Touch - Google 地图并将标记居中

    是我一个人的问题还是谷歌地图 API 似乎有点奇怪 尝试简单地显示某些坐标的标记 然后将屏幕置于标记的中心 在我的控制器中从视图触发 onGoogleMapRender function googleMap var long record
  • 无法使用 Osmdroid 实现 onTouchEvent(拖放)

    我一直在尝试实现 OnTouchEvent 以便当用户移动 拖放 覆盖项时我可以做出反应 我在 Osmdroid 网站上发现了类似的内容 http code google com p osmdroid issues detail id 22
  • OnClickListener 仅在第二次监听

    我有一个 editText 并向其中添加了一个 onClickListener 在单击方法中 我只是清除文本 当我第一次单击 editText 时 键盘会弹出 但它不会进入 onClick 方法 当我第二次单击它时 它被调用并清除文本 qt
  • 如何在 bash 脚本中执行命令,然后聚焦出现的窗口

    我有一个像这样的 bash 脚本 bin sh firefox Firefox 窗口打开 但没有焦点 我该怎么做才能让它自动获得焦点 我可以使用一些 X 窗口工具 命令 但如何获取 Firefox 的窗口 ID 窗口名称随着显示的 URL
  • 如何使带有列表数据源的tttableview顶部的蓝色条消失(在ios 5 beta上运行的程序)

    当程序在 ios 5 beta 上运行时 我的 tttableview 顶部会出现一个蓝色条 如果我在 ios 4 3 上运行程序 则不会出现蓝色条 该表配置为使用列表数据源 有谁知道是什么问题 ios 5 的 tableview api
  • Ajax 调用下载从 RESTful 服务返回的文件

    我对 AJAX 相当陌生 我正在使用 AJAX 向服务器发送请求 该服务返回一个文本文件 但返回数据时没有出现下载框 返回文件的rest服务如下 Path examples public class ExampleCodesRest POS
  • 在 Shiny 中下载 RenderTable() 数据帧上的处理程序

    我有一个闪亮的应用程序 它采用如下所示的 csv 文件 category action 并将其输入到数据框中以仅使用 action 过滤类别 可复制的应用程序 UI library shiny shinyUI fluidPage title
  • 再次为该片段创建 ViewModel

    我在 MainFragment 中创建视图模型 Override public void onActivityCreated Nullable Bundle savedInstanceState super onActivityCreate
  • Javafx 2 图表通过手绘调整大小

    我有一个在 JavaFX 2 0 中徒手绘制 XYChart 的代码 调整图表大小时遇到 问题 当我调整大小时 我遇到了徒手绘制的翻译问题 当我调整大小时 新绘图最初看起来超出了比例 但经过一点 图表移动 后 绘图它会自行修复 我该如何改进
  • 带取消功能的VBA密码输入

    我一直在使用 Daniel Klann 编写的标准密码文本框 http www ozgrid com forum showthread php t 72794 http www ozgrid com forum showthread php
  • 重命名包名称后出现“找不到符号 R”错误

    重命名我的项目包名称 使用重构 后 我收到此错误 Error 7 44 error cannot find symbol class R 我的全部R用法无效 我尝试手动修复它 但它对我不起作用 Invalidate chases Resta
  • Next.js 中未定义 localstorage

    我正在尝试将应用程序从 React 移至 Next 在 React 中我没有收到此代码的错误 let authTokens setAuthTokens useState gt localStorage getItem authTokens