在 vuex 操作中访问 this.$fireStore (Nuxt.js)

Access this.$fireStore in vuex action (Nuxt.js)

Here 声明可以在 vuex action:

中访问 $fireStore
async randomVuexAction({ commit, state, rootState }, userId) {
  const ref = this.$fireStore.collection('users').doc(userId)
  ...
}

问题:store/index.js触发动作后:

addItem: ({ commit, getters }, itemName) => {
  const item = { name: itemName }
  this.$fireStore.collection('items').add(item).then((res) => {})
}

我遇到错误:Cannot read property '$fireStore' of undefined。一般来说,除了 nuxtServerInit() 之外的所有操作中的 console.log(this) - 给出 undefined。那么甚至可以在 vuex 中使用 $fireStore 还是文档具有误导性?

尝试为您的操作删除箭头符号(因为 'this' 与箭头符号指的不是同一事物)即

addItem ({ commit, getters }, itemName) {
  const item = { name: itemName }
  this.$fireStore.collection('items').add(item).then((res) => {})
}

注意:这同样适用于 Vue 组件中的计算属性和方法。遵循文档,不要为了它而改变东西。