嗨,我得到了这样的错误

[Vuex]未知的行动类型:addodo

我是Vue js的新手,现在我正在学习,请帮我解决这个问题.

代码是这样的

存储/索引.js公司

 import { createStore } from 'vuex'

export default createStore({
  state: {
    todos: [
      {
        id: 1,
        title: 'One'
      },
      {
        id: 2,
        title: 'Two'
      },
      {
        id: 3,
        title: 'Three'
      },
    ]
  },
  getters: {
    allTodos: (state) => state.todos,
  },
  mutations: {
    addTodo({ commit }, todo){
      commit("add_todo", todo)
    }
  },
  actions: {
    add_todo(state, todo){
      state.todos.push(todo)
      console.log(todo);
    }
  },
  modules: {
  }
})

还有今天.代码视图为

  <template>
    <div>
        <div class="row">
        <input v-model="todoText" class="col form-control mx-2" type="text" />
        <button @click="addTodo(todoText)" class="btn btn-primary">Add List</button>
        </div>
        
    </div>
</template>

<script>
import { mapActions } from 'vuex'
export default{
name: 'TodoInput',
data(){
return{
    todoText: ''
}
},
methods:{
    ...mapActions(["addTodo"])
}
}
</script>

我如何解决上述问题?

推荐答案

在您的store/index.js文件中进行以下给定更改:

mutations: {
    add_todo: (state, todo) => state.todos.push(todo),
},

actions: {
    addTodo({ commit }, todo){
        commit("add_todo", todo)
    }
},

Vue.js相关问答推荐

无法从CDN使用Vue和PrimeVue呈现DataTable

用于循环数组的模板元素内的条件渲染

作为props 传递的原始 ref 的 Vue 3 react 性

Vue 3 / Vuetify 3:如何为按钮设置全局默认 colored颜色

vue js导航到带有问号的url

props至少应该定义它们的类型

Vuetify 复选框:如何停止点击事件?

Vue:在表格中显示嵌套数据

我是否必须在 Vue 3 中使用 Composition API,还是仍然可以使用Vue 2的方式工作?

动态插入字符串上的 Vue 事件处理程序不起作用

VueJS + Typescript:类型上不存在属性

VueJS 禁用特定属性的react性

使用 vue-test-utils 配置过滤器

如何让 Vue (vue cli 3) 正确处理 GraphQL 文件?

Vuetify v-btn 路由活动类问题

使用 vue-router 的默认子路由

基本 vue.js 2 和 vue-resource http 获取变量赋值

重新加载页面正在 vue 组件中的插槽上闪烁内容

Vue.js 的 $emit 和 $dispatch 有什么区别?

如何在 Vue.js 中延迟 @keyup 处理程序