Вот получатель из вычисленного компонента:
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.info('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
);
};
};
},
сохранить инициализацию:
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export const store = new Vuex.Store({
state: {
indicatorsSubMenuButtons: [
],
@Ferrybig, добавлена мутация в quastion. Я изменяю state.indicatorsSubMenuButtons.filter (item => item.subTypeName == activeMainType) [0] .indicatorSubFilters [i], где subFilterId == state.indicatorsMainMenuButtons.filter (item => item.active === true) [0] .mainMenuButtonJson
Определены ли значения магазина? Приведите пример инициализации состояния вашего магазина.
@ Джереми Уолтерс, смотри) я сделал такое же состояние хранилища, действие, мутацию и геттер для кнопок родительского меню, где свойство состояния состоит из ARRAY -> OBJECT -> .active: false. И это работает. Но здесь ARRAY -> OBJECT -> ARRAY -> active: false
@ERomulon, не могу найти проблему. Если вы не поняли это правильно, сделайте что-нибудь вроде шаблона кода codeandbox.io/s/535kx57jpx. Тогда я смогу лучше его отладить.





Как вы его настраиваете? есть несколько распространенных ловушек, которые могут привести к сбою значений параметров