【问题标题】:Unexpected token u in JSON at position 0 in reduxJSON中的意外标记u在redux中的位置0
【发布时间】:2022-07-31 03:15:10
【问题描述】:

我正在创建一个用户注册并且我正在使用 redux 工具包。当用户详细信息不在本地存储中时,我将其设置为 null。但是由于一开始用户是未定义的,它应该为它分配一个空值,但我收到了这个错误:

Uncaught SyntaxError: 位置 0 处 JSON 中的意外标记 u

由于这段代码:

// Get user from localStorage
const user = JSON.parse(localStorage.getItem("user"));

//initials state
const initialState = {
  user: user ? user : null,
  isError: false,
  isSuccess: false,
  isLoading: false,
  message: "",
};

我应该怎么写或者我做错了什么?我知道 undefined 的值是被字符串化的。

【问题讨论】:

    标签: json local-storage token jsonparser


    【解决方案1】:

    任何时候您看到Unexpected token u in JSON at position 0,几乎可以肯定是因为您试图将undefined 传递给JSON.parse。 JS 会自动转换成字符串"undefined",这是无效的JSON。

    JSON.parse(localStorage.getItem("user") || "null") 之类的东西应该可以解决问题。如果localStorage.getItem("user") 返回任何“假”,这将传递字符串"null"(这是有效的JSON)。

    这也意味着您以后不需要user ? user : null - 您可以只用user 替换它。

    【讨论】:

    • 即使更换了您提到的方式,我仍然收到错误
    • 嗯,您是否有可能在某个时候将字符串 "undefined" 实际存储在本地存储中?如果是这样,清除本地存储应该可以修复它,或者您可以在 devtools 中手动编辑它。 (假设导致它被这样存储的代码现在已修复。)
    • 谢谢大卫,我想我应该开始在访客帐户上开发
    • 谢谢你在一分钟内非常清楚的解释。不需要大量的文字阅读或观看数小时的视频:)
    【解决方案2】:

    清除本地存储解决了这个问题。谢谢

    【讨论】:

      【解决方案3】:

      我也有这个问题(但在嵌套 js 中),因为系统意外关闭。还没有任何效果

      【讨论】:

        猜你喜欢
        • 2019-08-30
        • 2016-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-04
        • 2019-11-21
        • 2019-08-10
        • 2018-01-29
        相关资源
        最近更新 更多