Nuxt. js Модуль Vuex не работает должным образом - PullRequest
1 голос
/ 15 февраля 2020

У меня проблемы с использованием Nuxt's Vuex в модулях.

Оказывается, что state объявляется и появляется в Vuex, действия запускаются, но mutation изменяет state, но не фиксируйте изменение и даже не запускайте событие, так как оно не отображается в консоли Vuex devtools под кодом модуля Vuex.

Примечание: в обоих console.log() выведите состояние, во-первых, пустое, как оно было объявлено, а во-вторых, измененное состояние, но изменение на самом деле не отражается в Vuex.

export const strict = false
export const state = () => ({
  address: {}
})

export const mutations = {
  setShopAddress(state, address) {
    console.log(state)
    state.address = address
    console.log(state)
  }
}

export const actions = {
  getAddress({
    commit
  }) {
    this.$axios
      .get('/general/address')
      .then((response) => {
        commit('setShopAddress', response.data)
      })
      .catch((e) => console.error(e))
  },
  setAddress(vuexContext, address) {
    vuexContext.commit('setShopAddress', address)
  }
}

export const getters = {
  getShopAddress(state) {
    return state.address
  }
}

1 Ответ

0 голосов
/ 30 марта 2020

Через много часов и благодаря группе Nuxt на Telegram я смог найти решение, мне просто нужно было установить asyn c на nuxtServerInit и ждать ответа на призыв к действию.

Код ниже:

async nuxtServerInit({ dispatch }) {
    await dispatch('module/action')
},

Надеюсь, мой ответ поможет большему количеству людей

...