VM28353:1 Uncaught (in promise) SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at getUser (auth.js?c7d4:11) at wrappedGetter (vuex.esm-browser.js?5502:335) at Object.eval [as getUser] (vuex.esm-browser.js?5502:88) at Object.get [as getUser] (vuex.esm-browser.js?5502:135) at Proxy.getuser (Profile.vue?c66d:98) at ReactiveEffect.run (reactivity.esm-bundler.js?a1e9:160) at ComputedRefImpl.get value [as value] (reactivity.esm-bundler.js?a1e9:1086) at Object.get [as getuser] (runtime-core.esm-bundler.js?5c40:2109) at Proxy.render (Profile.vue?c66d:26)Profile.vue Este es el único archivo que llama a los getters
computed: { getuser() { return this.$store.getters.getUser; }, },Auth.js En la consola, indica que el error proviene de mis captadores getUser en mi módulo de autenticación
const getters = { isLoggedIn: (state) => !!state.token, getUser: (state) => JSON.parse(state.user), getToken: (state) => state.token, }; const mutations = { setToken: (state, payload) => { state.token = payload; localStorage.setItem("auth_token", payload); }, setUser: (state, payload) => { state.user = payload; localStorage.setItem("user", JSON.stringify(payload)); }, };Supongo que state.user ya es un objeto, por lo tanto, no necesita usar JSON.parse ya que JSON.parse() convierte la entrada en una cadena. El método toString() de los objetos de JavaScript devuelve de forma predeterminada [objeto Objeto], lo que da como resultado el comportamiento observado.
Intente eliminar eso de modo que su código debería ser
const getters = { isLoggedIn: (state) => !!state.token, getUser: (state) => state.user, getToken: (state) => state.token, };