Функция mapGetters ведет себя иначе, чем store.getters. - PullRequest
0 голосов
/ 15 января 2019

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

1 Ответ

0 голосов
/ 15 января 2019

mapGetters() результат должен быть объединен в computed, а не methods.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...