NodeJS 如何修复此错误?无法读取null的属性

hiz5n14c  于 2023-10-17  发布在  Node.js
关注(0)|答案(2)|浏览(129)
import axios from "axios";

const BASE_URL = "http://localhost:5000/api/";
const TOKEN =
  JSON.parse(JSON.parse(localStorage.getItem("persist:root")).User).currentUser
    .accessToken || "";

export const publicRequest = axios.create({
  baseURL: BASE_URL,
});

export const userRequest = axios.create({
  baseURL: BASE_URL,
  header: { token: `Bearer ${TOKEN}` },
});

错误:
TypeError:无法读取null(阅读“User”)模块的属性。C:/Users/hp/Desktop/ecommerce 2/client/src/requestMethods.jsx:4 1|从“axios”导入axios; 2| 3 |const BASE_URL =“localhost:5000/API”;> 4| const TOKEN = 5| JSON.parse(JSON.parse(localStorage.getItem(“persist:root”)).User).currentUser 6|.accessToken||“"; 7|

mkshixfv

mkshixfv1#

该错误消息意味着您试图访问null对象上的User属性。
localStorage键persist:root似乎不包含任何内容。localStorage.getItem可以返回null,所以在尝试访问它返回的值的属性之前,需要检查这一点。举例来说:

const persistRoot = JSON.parse(localStorage.getItem('persist:root'));

if (persistRoot) {
  const accessToken = JSON.parse(persistRoot.User).currentUser.accessToken || '';
}

根据数据的结构,您可能需要在该链中进行额外的检查以确保值存在。您可能会发现optional chaining语法对此很有用。

x6h2sr28

x6h2sr282#

你这样试试,应该可以的。
JSON.parse(JSON.parse(localStorage.getItem(“persist:root”))?.用户||“{}”)?.currentUser?.accessToken

相关问题