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

问题描述 投票:0回答:1

Here指出$ fireStore可以在vuex action

中访问
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。一般而言,除console.log(this)以外的所有动作中的nuxtServerInit()-均会给出undefined。那么,是否有可能利用$fireStore中的vuex或文档产生误导?

firebase vue.js google-cloud-firestore nuxt.js vuefire
1个回答
0
投票

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

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

注意:这同样适用于Vue组件中的计算属性和方法。关注文档,不要为此而改变。

© www.soinside.com 2019 - 2024. All rights reserved.