我很难理解如何使用Vuex传递有效负载的操作。我知道我需要一个突变来改变状态,并且使用一个动作来发送突变是最好的做法。不知道如何调用操作并传入参数。每当我尝试这一点,我都会得到错误:
“未捕获类型错误:无法读取未定义的属性'iscomplete'”

// Store.js
const mutations = {
  completeTodo: function (state, todo) {
    console.log(todo)
    todo.isComplete = todo.isComplete || false
    state.toggleAll = false
  }
}

const actions = {
  completeTodo: ({commit}) => commit('completeTodo')
}

//Todo.vue

 methods: {
  ...mapActions([
    'completeTodo'
  ])
}

 <input type="checkbox" name="isCompleted" " v-on:change="completeTodo(todo)" class="todoCheck" />

最佳答案

您的操作应该采取第二个参数,即您在组件中传递的负载。

const actions = {
  completeTodo: ({commit}, todo) => commit('completeTodo', todo)
}

更多细节
这样想。
组件= >知道ToDo和完整的TodoDO函数(这是VUEX MaPalm提供的动作)。它不需要知道商店或任何功能就可以完成工作。
MaPults= >生成一个“智能”完整的dotDO函数,该函数负责调用存储库中的特定函数以及正确调用它的参数的顺序。

07-28 07:36