在 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 组件中的计算属性和方法。遵循文档,不要为了它而改变东西。
Here 声明可以在 vuex action:
中访问 $fireStoreasync 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 组件中的计算属性和方法。遵循文档,不要为了它而改变东西。