VuexFire:如何组合computed:和computed()

时间:2017-08-07 15:17:40

标签: firebase vue.js vuex

我在应用中使用VuexFire,而在我的组件中使用https://github.com/posva/vuexfire我有像

这样的行
   computed: Vuex.mapGetters(['todos']),
   created() {
     this.$store.dispatch('setTodosRef', todosRef)
   },

这种方法很好,除非我也有一些计算方法,在这种情况下,我不知道该怎么做。我尝试过这样的事情:

   computed: Vuex.mapGetters(['todos']),
   computed() {
      amethod: { return 1 }
   },
   created() {
     this.$store.dispatch('setTodosRef', todosRef)
   },

   computed() {
      amethod: { return 1 }
   },
   created() {
     ...Vuex.mapGetters(['todos'])
     this.$store.dispatch('setTodosRef', todosRef)
   },

但是这些,以及我尝试过的其他事情,显然是错误的,因为它们不起作用(即来自firebase的数据不适用于该方法。

什么是正确的做法?

1 个答案:

答案 0 :(得分:1)

首先,您将始终将计算属性指定为对象,而不是指定方法(正如您对computed()所做的那样)。

其次,您需要使用computed对象中的spread operator

computed: {
  amethod() { return 1 },
  ...Vuex.mapGetters(['todos'])
}

这有效地展开了Vuex.mapGetters返回的所有计算属性方法,并将它们定义为computed对象的属性。