У меня есть массив объектов, который отображается в таблице на моей html-странице в одном из моих компонентов Vue.Массив объектов - это данные в состоянии хранилища Vuex.
export const store = new Vuex.Store({
state: {
jobs: [{...},{...},{...},{...},{...},{...}]
},
mutations: {
sortJobs(state, sortKey) {
console.log('running mutation');
let compare = 0;
this.state.jobs.sort((a, b) => {
if (a.sortKey > b.sortKey) {
compare = 1;
} else if (b.sortKey > a.sortKey) {
compare = -1;
}
return compare;
});
}
},
getters: {
jobs: state => state.jobs
}
});
Я пытаюсь отсортировать массив объектов в мутации sortJobs
, но это не сработает.Я вызываю мутацию в одном из моих компонентов.
methods: {
sortBy: function(sortKey) {
this.$store.commit('sortJobs', sortKey);
}
}
Это не изменит порядок массива объектов, ни в моей таблице.Я проверил, могу ли я что-нибудь сделать с массивом объектов, и когда я заменяю this.state.jobs.sort(...)
на this.state.jobs.shift();
, первый элемент объекта в массиве исчезает из моей таблицы.Но когда дело доходит до сортировки, я не могу заставить это сортировать вообще.Что я делаю не так?