Как получить данные из localStorage в store Nuxt.js
Подскажите, как получить данные из localStorage в store Nuxt js
import getters from './getters'
import actions from './actions'
import mutations from './mutations'
const cart = window.localStorage.getItem('cart')
const totalCart = window.localStorage.getItem('totalCart')
const costCart = window.localStorage.getItem('costCart')
export default {
state: {
cart: cart ? JSON.parse(cart) : [],
totalCart: totalCart ? parseInt(totalCart) : 0,
costCart: costCart ? parseInt(costCart) : 0,
geo: [],
error: []
},
getters,
actions,
mutations
}
так пишет window is not defined
Ответы (1 шт):
Автор решения: Aslero
→ Ссылка
не знаю насколько верно все сделал, но работает, поправьте плз, если это все ккал)))
сделал плагин
nuxt-client-init.js
export default async (context) => {
await context.store.dispatch('nuxtClientInit', context)
}
в nuxt.config.js в plugins добавил
{ src: '~/plugins/app/nuxt-client-init.js', mode: 'client'},
в actions store добавил
nuxtClientInit ({ commit }, { req }) {
commit('INIT_CART_FROM_LOCALSTORAGE')
},
сама мутация
INIT_CART_FROM_LOCALSTORAGE (state) {
const cart = window.localStorage.getItem('cart')
const totalCart = window.localStorage.getItem('totalCart')
const costCart = window.localStorage.getItem('costCart')
state.cart = cart ? JSON.parse(cart) : []
state.totalCart = totalCart ? parseInt(totalCart) : 0
state.costCart = costCart ? parseInt(costCart) : 0
},