我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用vuex出现commit未定义错误如何解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用vuex出现commit未定义错误如何解决

这篇文章主要介绍“使用vuex出现commit未定义错误如何解决”,在日常操作中,相信很多人在使用vuex出现commit未定义错误如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用vuex出现commit未定义错误如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    使用vuex的时候出现commit未定义错误

    出现的原因

    • 书写错误

    • 当然,这个错误不是你单词书写错误

    • 只要的原因是因为你的这个 方法里面没有 commit 这个方法

    • 为什么没有?其实它是有的,只不过在 context 里面

    • 你可能是直接写 commit(xxx)了

    错误展现过程

    首先我们先调用一下

    <div><input type="button" @click="$store.dispatch('listMore')" value="加载更多"></div>

    为什么是 dispatch ,因为你不是用 commit 了吗?

    这个就是在 actions 里面调用 mutations 里面的方法的

    然后就是代码:

    actions = {     login(context){            commit("CHANGE_USERNAME")        }    }};
    • 可以看到接受了一个参数,这个参数是它默认传的,你不能改变

    • commit 在 context 里面,但是你是直接写

    正确调用的话可以这样来写

    actions = {     login(context){            context.commit("CHANGE_USERNAME")        }    }};

    或者这样:

    actions = {     login({commit}){  //加 { }            commit("CHANGE_USERNAME")        }    }};

    vuex模块化 commit()时报错 unknown mutation type:xxx

    废话不多说直接上问题

    我写了两个组件,准备练习Vuex的模块化

    这是Count模块(计数作用)的js

    increment方法触发后,由于逻辑十分简单我就直接给到了mutations

    让他加

      methods: {    increment() {      this.$store.commit("INCREMENT", this.n);    },    decrement() {      this.$store.commit("DECREMENT", this.n);    },    incrementOdd() {      this.$store.dispatch("incrementOdd", this.n);    },    incrementWait() {      this.$store.dispatch("incrementWait", this.n);    },  },
        mutations: {        // 加        INCREMENT(state, value) {            state.sum += value;        },        // 减        DECREMENT(state, value) {            state.sum -= value;        }    },    state: {        sum: 0,        bigSum: 0,    },

    这是Person模块(添加人员作用)的js

    add方法触发后将信息封装成对象直接给到mutations,然后一个unshift新增即可 

      methods: {    add() {      const personObj = { id: nanoid(), name: this.name };      console.log(this.$store);      this.$store.commit("ADD_PERSON", personObj);      this.name = "";    },  },
        mutations: {        ADD_PERSON(state, personObj) {            state.personList.unshift(personObj);        },    },

    然后这是storejs

    import Vue from 'vue'// 引用vueximport Vuex from 'vuex';// 使用vuexVue.use(Vuex)import CountOptions from './count';import PersonOptions from './person';// 创建并暴露storeexport default new Vuex.Store({    modules:{        countAbout:CountOptions,        personAbout:PersonOptions,    }})

    就这样,run起来后,

    • 触发increment(数字+) ==> 成功

    • 触发add(加一个人) ==> unknown mutation type:ADD_PERSON

    使用vuex出现commit未定义错误如何解决

    于是我把$store捞出来,找到_mutations

    使用vuex出现commit未定义错误如何解决

    发现我的添加人员的add指向的的mutation 外面包了一层,

    完事我将这一层加上去,成功实现,

    然后我将Count的加上countAbout反而报错

    那么问题来了,为啥我两个模块的写法是一样,然后调用的模块的情况也是一样的(count.vue==>count模块,person.vue==>person模块),一个包了一个没包,于是我怀疑是引入顺序的问题,觉得第一个引入的模块不包,于是我将模块的引入,声明甚至组件的顺序都调换了顺序,然而并没有什么软用。。。

    于是我写了一个临时的test模块。分别copy Count,Person模块的js,

    然后我以为是命名的问题,因为我的两个模块的命名一个有下划线,一个没有下划线,于是:

    使用vuex出现commit未定义错误如何解决

    发现并不是

    于是我有写了两个测试模块 test demo

    发现除了count,其他都包了

    使用vuex出现commit未定义错误如何解决

    最后发现是我的count的开启命名空间namespaced的d忘了写

    到此,关于“使用vuex出现commit未定义错误如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    使用vuex出现commit未定义错误如何解决

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    使用vuex出现commit未定义错误如何解决

    这篇文章主要介绍“使用vuex出现commit未定义错误如何解决”,在日常操作中,相信很多人在使用vuex出现commit未定义错误如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用vuex出现com
    2023-07-04

    在使用vuex的时候出现commit未定义错误的解决

    这篇文章主要介绍了在使用vuex的时候出现commit未定义错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-10

    win10出现未指定的错误如何解决

    要解决Windows 10中的未指定错误,可以尝试以下方法:安装最新的Windows更新:打开Windows设置,点击“更新和安全”,然后点击“检查更新”。安装最新的更新可能修复已知的错误。运行系统文件检查器(SFC):打开命令提示符(管理
    win10出现未指定的错误如何解决
    2024-02-29

    为什么PHP出现“未定义函数”错误,该如何解决?

    PHP是一种服务器端脚本语言,但在编写代码时难免会出现“未定义函数”的错误。这种错误通常是因为没有正确地引入函数或者函数不存在导致的。本文将解释为什么会出现该错误并提出解决方案,同时提供一些具体的代码示例。问题原因:当在PHP代码中调用一个
    为什么PHP出现“未定义函数”错误,该如何解决?
    2023-12-09

    JSON对象未定义错误如何解决

    当出现"JSON对象未定义"错误时,通常是因为JavaScript代码中没有正确引入JSON对象或者JSON对象不可用。要解决这个问题,可以尝试以下几个步骤:1. 确保JSON对象可用:JSON对象是JavaScript的一部分,所以大多数
    2023-08-16

    在 REST API 中使用 Goroutine - 出现未定义的错误

    最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《在 REST API 中使用 Goroutine - 出现未定义的错误》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,
    在 REST API 中使用 Goroutine - 出现未定义的错误
    2024-04-04

    使用Unity3D时出现DllNotFoundException错误如何解决

    这篇文章给大家介绍使用Unity3D时出现DllNotFoundException错误如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。起因unity程序build到pc上,拿到其他人的机器上结果有些功能不正常,看
    2023-06-14

    在Java中使用Arrays.asList上出现UnsupportedOperationException错误如何解决

    本篇文章给大家分享的是有关在Java中使用Arrays.asList上出现UnsupportedOperationException错误如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编
    2023-06-14

    如何解决php ueditor上传图片出现未知错误的问题

    php ueditor上传图片出现未知错误的解决办法:1、找到并打开php.ini配置文件;2、修改“upload_tmp_dir”的参数即可。
    2015-05-21

    Ubuntu使用国内源出现Hash Sum mismatch错误如何解决

    出现Hash Sum mismatch错误可能是由于软件包在下载过程中被修改或损坏引起的。解决该问题的方法如下:1. 清除软件包缓存:打开终端,运行以下命令: ```shell sudo apt clean ```2. 更新软件
    2023-08-11

    使用php将时间戳转日期出现错误如何解决

    使用php将时间戳转日期出现错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php时间戳转日期出错?今天用时间戳转日期,居然day出现了51号,把我弄
    2023-06-15

    在pytorch中使用loss反向传播出现错误如何解决

    在pytorch中使用loss反向传播出现错误如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。解决办法:1. 给 loss.backward() 指定传递给后向的参数维度
    2023-06-15

    oracle关键字在mybatis中使用时出现错误如何解决

    oracle关键字在mybatis中使用时出现错误如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。解决方式 可以使用resultMap**示例代码