使用可选链接后。问题 JSON 中位置 0 的意外标记 u

After using optional chaining. Problem Unexpected token u in JSON at position 0

使用可选链后,我收到了这个问题。

Unexpected token u in JSON at position 0

import axios from 'axios'

const BASE_URL = 'http://localhost:5000/api'
const TOKEN = JSON.parse(JSON.parse(localStorage.getItem('persist:root'))?.user)
    ?.currentUser?.accessToken || null

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

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

编辑添加:

你为什么要解析 persist:root,这个对象是由 redux-persist 库设置的,它是你的 redux 存储的副本。如果您需要商店中的任何数据,请使用 React 组件中的 useSelector 挂钩。

试试这个:

const TOKEN = JSON.parse(JSON.parse(localStorage.getItem('persist:root'))?.user ?? null)?.currentUser?.accessToken || null;

等同于:

const storageItem = localStorage.getItem('persist:root'); // string or null
const parsedObject = JSON.parse(storageItem); // parsed object or null
const parsedUser = JSON.parse(parsedObject?.user ?? null); // parsed user or null
const TOKEN = parsedUser?.currentUser?.accessToken || null; // the token or null