Вы не должны вызывать добытчиков.Точно так же как вычисленные свойства, вы вместо этого пишете это, как будто вы читаете переменную.В фоновом режиме функция, которую вы определили в хранилище Vuex, вызывается с состоянием getters (и, возможно, rootState и rootGetters) и возвращает некоторое значение.
Кроме того, обычно использование анти-паттерна для использования жизненного циклакрючок для инициализации любой переменной.Локальные переменные «компонента» могут быть инициализированы в свойстве data
компонента, в то время как такие вещи, как состояние vuex, обычно заканчиваются вычисляемым свойством.
Последнее, на что я хочу обратить внимание, это то, что еслиВы правильно добавили хранилище в свое приложение Vue. Вы можете получить доступ к хранилищу в любом компоненте с помощью this.$store
.Чтобы использовать геттеры в вашем приложении, вы можете использовать помощник mapGetters
для сопоставления геттеров со свойствами компонентов.Я бы рекомендовал использовать что-то вроде этого:
import { mapGetters } from 'vuex';
export default {
// Omitted some things here
computed: {
...mapGetters({
selectedType: 'getSelectedType'
})
},
methods: {
doSomething () {
console.log(this.selectedType);
}
}
}
Что функционально эквивалентно:
computed: {
selectedType () {
return this.$store.getters.getSelectedType;
}
}