После того, как пользователь нажмет кнопку, я хочу заменить данные в моем хранилище vuex данными из моего локального объекта. Но я застрял в мутации. Вот код для более подробной информации.
Это метод, который вызывается после того, как пользователь нажмет кнопку. (this.tableview — локальный объект с теми же значениями, что и объект vuex)
updateVuexTableview() {
// eslint-disable-next-line no-console
console.log("Update Vuex Table view");
this.updateTableview(this.tableview)
}
В этом методе вызывается мое действие vuex. Это выглядит так: (updTableview — это новые данные, которые я хочу вставить)
async updateTableview({commit}, updTableview) {
const response = await axios.put(
`http://localhost:3000/tableview`,
updTableview
);
// eslint-disable-next-line no-console
console.log(response.data);
commit('updateTableviewMut', response.data);
},
Это называется мутация. Вот где я застрял. Я попытался вытолкнуть данные и снова отправить их, но пока ничего не работает.
updateTableviewMut: (state, updTableview) => {
state.tableview.push(updTableview)
},
Вот это мое состояние:
const state = {
tableview: {
"thema_c": true,
"status_c": true,
"priority_c": true,
"custom1_c": true,
"custom2_c": true,
"customFieldName1": "Custom1",
"customFieldName2": "Custom2"
},
};
state.tableview
не является массивом, это объект, поэтому вы не можете использовать.push
для этого - person Nipun Jain   schedule 17.02.2020updateTableviewMut
? - person Nipun Jain   schedule 17.02.2020state.tableview['keyname'] = updTableview
где вы должны указать ключевое имя для этого элемента. Также вы можете обновить, как выглядит вашupdTableview
- person Nipun Jain   schedule 17.02.2020state.tableview = updTableview
у меня работает. Не думал, что это будет так легко. - person HTLWelsITLover99   schedule 17.02.2020