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}` }, });El error:
TypeError: no se pueden leer las propiedades del módulo nulo (leyendo 'Usuario'). C:/Users/hp/Desktop/ecommerce 2/client/src/requestMethods.jsx:4 1 | importar axios desde "axios"; 2 | 3 | const BASE_URL = "localhost:5000/api"; > 4 | const TOKEN = 5 | JSON.parse(JSON.parse(localStorage.getItem("persist:root")).Usuario).currentUser 6 | .token de acceso || ""; 7 |
Prueba así, debería funcionar.
JSON.parse(JSON.parse(localStorage.getItem("persist:root"))?.user || "{}")?.currentUser?.accessToken
Ese mensaje de error significa que intentó acceder a la propiedad User en un objeto que es null .
La clave localStorage persist:root no parece contener nada. localStorage.getItem puede devolver null , por lo que debe verificar esto antes de intentar acceder a las propiedades en el valor que se devuelve. Por ejemplo:
const persistRoot = JSON.parse(localStorage.getItem('persist:root')); if (persistRoot) { const accessToken = JSON.parse(persistRoot.User).currentUser.accessToken || ''; }Dependiendo de cómo estén estructurados sus datos, es posible que necesite verificaciones adicionales en esa cadena para asegurarse de que existan valores. Puede encontrar que la sintaxis de encadenamiento opcional es útil para esto.