我有一个getter,它返回一个带有参数的新方法,根据文档,我应该能够调用此方法而无需进行两次方法调用。如果我直接使用store.getters,那么效果很好,但是我想使用mapGetters,但是为了获得一个值而不仅仅是返回的函数。正如您在香草js中所期望的那样,我需要将方法称为“两次”。我是在做错事还是这是一个极端情况?
谢谢
export default {
components: { AddRemove, NumberInput },
methods: {
...mapGetters({getExtra: types.GET_EXTRA}),
// Why can I omit the parenthesis when using the store.getters directly?
extraAmountWithoutParenthesis(code) {
return this.$store.getters.getExtra(code) // returns integer
},
// And why do I require them when using a named mapGetters method
extraAmountRequiresParenthesis(code) {
// return this.getExtra(code) // returns function
return this.getExtra()(code) // returns integer
}
}
}
在我的吸气剂中:
[types.GET_EXTRA]: (state) => (code) => {
let value = state.extras[code]
if (!value) {
value = 0
}
return parseInt(value)
},
答案 0 :(得分:1)
mapGetters()
结果必须合并到computed
中,而不是methods
中。