亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在使用vuex的時候出現(xiàn)commit未定義錯誤的解決

 更新時間:2023年01月10日 16:15:02   作者:web前端?zxp  
這篇文章主要介紹了在使用vuex的時候出現(xiàn)commit未定義錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

使用vuex的時候出現(xiàn)commit未定義錯誤

出現(xiàn)的原因

  • 書寫錯誤
  • 當(dāng)然,這個錯誤不是你單詞書寫錯誤
  • 只要的原因是因為你的這個 方法里面沒有 commit 這個方法
  • 為什么沒有?其實它是有的,只不過在 context 里面
  • 你可能是直接寫 commit(xxx)了

錯誤展現(xiàn)過程

首先我們先調(diào)用一下

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

為什么是 dispatch ,因為你不是用 commit 了嗎?

這個就是在 actions 里面調(diào)用 mutations 里面的方法的

然后就是代碼:

actions = {
     login(context){
            commit("CHANGE_USERNAME")
        }
    }
};
  • 可以看到接受了一個參數(shù),這個參數(shù)是它默認(rèn)傳的,你不能改變
  • commit 在 context 里面,但是你是直接寫

正確調(diào)用的話可以這樣來寫

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

或者這樣:

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

vuex模塊化 commit()時報錯 unknown mutation type:xxx

廢話不多說直接上問題

我寫了兩個組件,準(zhǔn)備練習(xí)Vuex的模塊化

這是Count模塊(計數(shù)作用)的js

increment方法觸發(fā)后,由于邏輯十分簡單我就直接給到了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方法觸發(fā)后將信息封裝成對象直接給到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'
// 引用vuex
import Vuex from 'vuex';

// 使用vuex
Vue.use(Vuex)

import CountOptions from './count';
import PersonOptions from './person';

// 創(chuàng)建并暴露store
export default new Vuex.Store({
? ? modules:{
? ? ? ? countAbout:CountOptions,
? ? ? ? personAbout:PersonOptions,
? ? }
})

就這樣,run起來后,

  • 觸發(fā)increment(數(shù)字+) ==> 成功
  • 觸發(fā)add(加一個人) ==> unknown mutation type:ADD_PERSON

于是我把$store撈出來,找到_mutations

發(fā)現(xiàn)我的添加人員的add指向的的mutation 外面包了一層,

完事我將這一層加上去,成功實現(xiàn),

然后我將Count的加上countAbout反而報錯

那么問題來了,為啥我兩個模塊的寫法是一樣,然后調(diào)用的模塊的情況也是一樣的(count.vue==>count模塊,person.vue==>person模塊),一個包了一個沒包,于是我懷疑是引入順序的問題,覺得第一個引入的模塊不包,于是我將模塊的引入,聲明甚至組件的順序都調(diào)換了順序,然而并沒有什么軟用。。。

于是我寫了一個臨時的test模塊。分別copy Count,Person模塊的js,

然后我以為是命名的問題,因為我的兩個模塊的命名一個有下劃線,一個沒有下劃線,于是:

發(fā)現(xiàn)并不是

于是我有寫了兩個測試模塊 test demo

發(fā)現(xiàn)除了count,其他都包了

最后發(fā)現(xiàn)是我的count的開啟命名空間namespaced的d忘了寫

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue數(shù)據(jù)雙向綁定原理及簡單實現(xiàn)方法

    Vue數(shù)據(jù)雙向綁定原理及簡單實現(xiàn)方法

    vue數(shù)據(jù)雙向綁定是通過數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式來實現(xiàn)的.本文重點給大家介紹Vue數(shù)據(jù)雙向綁定原理及簡單實現(xiàn)方法,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • vue項目中使用TDesign的方法

    vue項目中使用TDesign的方法

    tdesign-vue是TDesign 適配桌面端的組件庫,適合在 vue 2 技術(shù)棧項目中使用,這篇文章主要介紹了vue項目中使用TDesign?,需要的朋友可以參考下
    2023-04-04
  • vue通過watch對input做字?jǐn)?shù)限定的方法

    vue通過watch對input做字?jǐn)?shù)限定的方法

    本篇文章主要介紹了vue通過watch對input做字?jǐn)?shù)限定的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue添加請求攔截器及vue-resource 攔截器使用

    Vue添加請求攔截器及vue-resource 攔截器使用

    這篇文章主要介紹了Vue添加請求攔截器及vue-resource 攔截器使用,需要的朋友可以參考下
    2017-11-11
  • Vue中事件總線(eventBus)的深入詳解及使用

    Vue中事件總線(eventBus)的深入詳解及使用

    在vue項目中父子組件間的通訊很方便,但兄弟組件或多層嵌套組件間的通訊,就會比較麻煩,這時使用eventBus通訊,就可以很便捷的解決這個問題,這篇文章主要給大家介紹了關(guān)于Vue中事件總線(eventBus)使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • vue中手機(jī)號,郵箱正則驗證以及60s發(fā)送驗證碼的實例

    vue中手機(jī)號,郵箱正則驗證以及60s發(fā)送驗證碼的實例

    下面小編就為大家分享一篇vue中手機(jī)號,郵箱正則驗證以及60s發(fā)送驗證碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Vue3+Vite項目使用mockjs隨機(jī)模擬數(shù)據(jù)

    Vue3+Vite項目使用mockjs隨機(jī)模擬數(shù)據(jù)

    這篇文章主要介紹了Vue3+Vite項目使用mockjs隨機(jī)模擬數(shù)據(jù),需要的朋友可以參考下
    2023-01-01
  • 使用Vue和Firebase實現(xiàn)后臺數(shù)據(jù)存儲的示例代碼

    使用Vue和Firebase實現(xiàn)后臺數(shù)據(jù)存儲的示例代碼

    在現(xiàn)代 web 應(yīng)用開發(fā)中,前端和后端的無縫協(xié)作至關(guān)重要,借助 Firebase 等云計算解決方案,前端開發(fā)者可以輕松實現(xiàn)數(shù)據(jù)存儲與實時更新,本文將為大家詳細(xì)介紹如何利用 Vue 3 的 Composition API 和 Firebase 實現(xiàn)后臺數(shù)據(jù)存儲,需要的朋友可以參考下
    2024-10-10
  • vue通過數(shù)據(jù)過濾實現(xiàn)表格合并

    vue通過數(shù)據(jù)過濾實現(xiàn)表格合并

    這篇文章主要為大家詳細(xì)介紹了vue通過數(shù)據(jù)過濾實現(xiàn)表格合并,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • vue轉(zhuǎn)react useEffect的全過程

    vue轉(zhuǎn)react useEffect的全過程

    這篇文章主要介紹了vue轉(zhuǎn)react useEffect的全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論