繁体   English   中英

反应错误 - Uncaught SyntaxError: Unexpected token o in JSON at position 1

[英]react error - Uncaught SyntaxError: Unexpected token o in JSON at position 1

我切换了我的后端数据库,创建了一个新的超级用户,然后将 yarn start 到 go 到开发环境中进行反应。 现在才得到这个错误

VM4135:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse ()

我认为问题在于我正在同时提取 web 令牌和用户数据。 然后将它们存储在本地存储中,但是由于这是新启动,因此本地存储中没有任何内容,它正在寻找不存在的令牌? 我不太确定这是否正确,但我似乎无法克服它。

任何帮助,将不胜感激。

抛出错误的个人资料页面。

const user = JSON.parse(localStorage.getItem("user") || {});
const Profile = () => (
  <div className={s.root}>
    <h1 className="page-title">
      User - <span className="fw-semi-bold">Profile</span>
    </h1>
      ...

令牌和用户身份验证操作

// token and user auth
export function receiveToken(payload) {
  return (dispatch) => {
    const user = payload.user;
    const token = payload.token;

    delete user.id;
    localStorage.setItem("token", token);
    localStorage.setItem("user", JSON.stringify(user));
    axios.defaults.headers.common["Authorization"] = `Token ${token}`;
    dispatch(receiveLogin());
  };
}

完全错误

VM4135:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at Module../src/pages/profile/Profile.js (Profile.js:8)
    at __webpack_require__ (bootstrap:781)
    at fn (bootstrap:149)
    at Module../src/components/Layout/Layout.js (InputValidation.js:72)
    at __webpack_require__ (bootstrap:781)
    at fn (bootstrap:149)
    at Module../src/components/App.js (useraccounts.js:44)
    at __webpack_require__ (bootstrap:781)
    at fn (bootstrap:149)
    at Module../src/index.js (a6.jpg:1)
    at __webpack_require__ (bootstrap:781)
    at fn (bootstrap:149)
    at Object.1 (theme.scss?2910:45)
    at __webpack_require__ (bootstrap:781)
    at checkDeferredModules (bootstrap:45)
    at Array.webpackJsonpCallback [as push] (bootstrap:32)
    at main.chunk.js:1

问题似乎出在第一行。 您无法parse有效的 JavaScript Object。 将您的行更改为:

const user = JSON.parse(localStorage.getItem("user")) || {};

这是来自控制台的示例。

安慰

另外,检查localStorage.getItem("user")的内容。 如果,它将某些东西存储为[object Object]怎么办? 因此,当您设置本地存储项目时,请确保您这样做:

const user = {some: "obj"};
localStorage.setItem(JSON.stringify(user));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM