2

已安装 Nuxt axios 模块并在 index.js 文件中工作,但是当我清空 index.js 文件并分离到它自己的模块文件(team.js)中时,它不起作用。

Team.js

export const state = () => ({
  teams: {},
})

export const mutations = {
  SET_TEAMS (state, value) {
    state.teams = value
  }
}

export const actions = {
async nuxtServerInit ({ commit }) {
  let {data} = await this.$axios.$get(`team`)
  commit('SET_TEAMS', data)
}

在 Vue 开发工具中,它显示为 - 团队:对象团队:对象(空)拥有 Vuex 模块的正确方法是什么?我见过的文档和其他项目应该可以工作

4

1 回答 1

2

跟进我的评论和来源建议,您的store/teams.js文件可以拥有自己的nuxtServerInit;但是您可以随意命名它,因为您需要从主模块 ( store/index.js) 中显式调度它。


store/teams.js

export const actions = {
  async nuxtServerInit({ commit }) {
    let {data} = await this.$axios.$get(`team`)
      commit('SET_TEAMS', data)
    }
  }
}

store/index.js

export const actions = {
  async nuxtServerInit({ dispatch }) {
    dispatch('teams/nuxtServerInit')
  }
}
于 2018-10-18T17:47:38.937 回答