store.state image
Вот получатель из вычисленного компонента:
computed: {
get_indicatorsSubMenuButtons(){
let p = this.$store.getters.get_indicatorsMainMenuButtonActive[0].mainMenuButtonJson;
let j;
switch(p) {
case 'getFuelStock':
j = this.$store.getters.get_indicatorsSubMenuButtons[0].indicatorSubFilters;
break;
case 'getFuelSell':
j = this.$store.getters.get_indicatorsSubMenuButtons[1].indicatorSubFilters;
break;
case 'getArticleSell':
j = this.$store.getters.get_indicatorsSubMenuButtons[2].indicatorSubFilters;
break;
}
return j;
},
},
, а вот получатель из vuex:
get_indicatorsSubMenuButtons: (state) => {
let activeMainMenuButton = state.indicatorsMainMenuButtons.filter(item => item.active === true)[0].mainMenuButtonJson;
let r = state.indicatorsSubMenuButtons;
return r;
},
Когда я меняю активное состояние каждой кнопки, все данные в магазине обновляются, и получатель тоже.Но этот метод получения в компоненте обновляется только тогда, когда компонент монтируется, и когда я изменяю состояния родительского меню.
мутация в vuex:
TOGGLE_MARKING_SETTINGS_SUB_MENU_ITEM: (state, payload) => {
console.log('payload',payload);
let o = payload.subFilterId,
n = payload.subFilterName,
s = payload.active;
let activeMainType = state.indicatorsMainMenuButtons.filter(item => item.active === true)[0].mainMenuButtonJson;
//Vue.set(vm.items, indexOfItem, newValue)
let v = state.indicatorsSubMenuButtons;
let vf = v.filter(item => item.subTypeName == activeMainType)[0];
for (var i = 0; i < vf.indicatorSubFilters.length; i++) {
if(vf.indicatorSubFilters[i].subFilterId == o){
Vue.set(
vf.indicatorSubFilters[i],
'active',
true
);
} else {
Vue.set(
vf.indicatorSubFilters[i],
'active',
false
);
};
};
},
store init:
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export const store = new Vuex.Store({
state: {
indicatorsSubMenuButtons: [
],