将 getter 设置到 vuefire 的 firestore 部分

问题描述

我正在寻找一种使用 vue 设置从 getter 到 firestore 部分的属性方法。我正在使用 vuefire ,但出现此错误

vue.runtime.esm.js?2b0e:1888 TypeError:无法读取未定义的属性“getToUid”

下面是我的代码

    data: () => ({
      name:'',}),firestore: () => ({
        // eslint-disable-next-line no-undef
        usersList: db.collection(users),dmMessages: db.collection(direct_message).doc(this.getToUid).collection(message_collection_name)
      }),computed: {
        ...mapGetters({
          getToUid: "chats/GET_TO_UID",}

getToUid 设置到这一行的最佳方式是什么:

 dmMessages: db.collection(direct_message).doc(this.getToUid).collection(message_collection_name)

解决方法

您的 firestore 选项不应是箭头函数,否则它无法通过 this 访问组件实例。改为:

firestore() {
  return {
    usersList: db.collection(users),dmMessages: db.collection(direct_message).doc(this.getToUid).collection(message_collection_name)
  }
},