Предположим, у вас есть простой компонент приложения с кнопкой для добавления нескольких счетчиков из компонента счетчика с помощью хранилища vuex.Каков правильный способ использования компонентных реквизитов в приемнике Vuex?
Here is the whole thing on webpackbin.
Немного как базовый пример счетчика с vuex git repo .Но вы хотите использовать vuex поглотитель с идентификатором, который передан через свойство на компоненте, как бы вы сделали это?
Геттер должен быть чистой функцией, поэтому вы не можете использовать this.counterId
. Официальные документы говорят, что вы должны использовать вычисленное свойство, но это тоже не работает. Этот код возвращает неопределенный для получателя:
import * as actions from './actions'
export default {
props: ['counterId'],
vuex: {
getters: {
count: state => state.counters[getId]
},
actions: actions
},
computed: {
getId() { return this.counterId }
},
}
ваш код кажется правильным. Идея вычислительного свойства «getId» заключается в том, что вы используете свойства из своего компонента, а не из своего государства. В вашем случае вы делаете то и другое. Ничего плохого в этом, но обратите внимание на свою логику при вызове getId() и что вы получаете от него. –
id - это только индекс массива. само вычисляемое свойство отлично работает. геттер по-прежнему возвращает undefined, поэтому должно быть что-то не так. Я использую вычислимое свойство, потому что вы не можете использовать 'this' в getter по определению. – Chris