Геттеры обычно для получения, а не для установки. Они похожи на Vuex, которые возвращают вычисленные данные. Они обновляются автоматически при изменении реактивного содержимого. Поэтому, вероятно, лучше переосмыслить дизайн, чтобы обновлять только состояние. В любом случае, Vuex должен обновляться только с помощью действий / мутаций
Учитывая ваш пример и информацию из всех ваших комментариев, используя linedata
в качестве состояния, ваше действие и мутация будут выглядеть примерно так:
actions: {
asnyc loadData({ commit }) {
let response = await Api().get("/cpu");
commit('SET_DATA', response.data.dates);
}
}
mutations: {
SET_DATA(state, dates) {
Vue.set(state.linedata[0].chartOptions.xAxis, 'categories', dates[0]);
Vue.set(state.linedata[1].chartOptions.xAxis, 'categories', dates[1]);
}
}
Который вы могли бы вызвать, например, в компоненте, например:
this.$store.dispatch('loadData');
Использование Vue.set
необходимо для обнаружения изменений и также требует этот импорт в вашем магазине:
import Vue from 'vue';
В идеале мог бы быть лучший способ спроектировать ваш внутренний API, чтобы вы могли просто установить state.linedata = payload
в мутации, но это будет работать.