Как вы можете видеть ниже, у меня есть геттер, который возвращает новый метод, который принимает параметр, в соответствии с документацией, я должен иметь возможность вызывать этот метод, не делая два вызова метода. Это прекрасно работает, если я использую store.getters напрямую, однако я хочу использовать mapGetters, но для того, чтобы получить значение, а не только возвращаемую функцию. Мне нужно вызвать метод «дважды», как и следовало ожидать в vanilla 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)
},