Я пытаюсь изменить состояние Vuex, объединяя массив state.todos, меняя один объект в массиве другим, который задан в моем компоненте / через мутации
это мое состояние Vuex
`state: {
todos: [
{
title: "First Title",
desc: [
{
name: "First description",
completed: false,
editing: false
}
],
id: 0,
completed: false,
show: false
},
{
title: "Second Title",
desc: [
{
name: "Second description",
completed: false,
editing: false
},
{
name: "Third Description ",
editing: false,
completed: false
}
],
id: 1,
completed: false,
show: false
}
]
это мутация из Vuex
finalSaving(state, index, obj) {
state.todos.splice(index, 1, obj);
}
Составная часть:
<script>
import { mapState, mapMutations } from "vuex";
import deepClone from "clone-deep-js";
export default {
data() {
return {
routeId: this.$route.params.id,
editObj: { title: "", desc: [], id: null },
};
},
Проблемный метод:
methods: {
...mapMutations(["finalSaving"]),
finalSave() {
this.finalSaving(this.routeId, this.editObj);
},
},
так далее
mounted() {
this.editObj = deepClone(this.todos[this.routeId]);
},
computed: {
...mapState(["todos"]),
},
Эта мутация отлично работает: (Vuex)
agree(state, index) {
state.todos.splice(index, 1);
},
Метод компонента Vue:
yes(index) {
this.agree(index);
}