我在应用中使用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的数据不适用于该方法。
什么是正确的做法?
答案 0 :(得分:1)
首先,您将始终将计算属性指定为对象,而不是指定方法(正如您对computed()
所做的那样)。
其次,您需要使用computed
对象中的spread operator:
computed: {
amethod() { return 1 },
...Vuex.mapGetters(['todos'])
}
这有效地展开了Vuex.mapGetters
返回的所有计算属性方法,并将它们定义为computed
对象的属性。