最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

出現(xiàn)的原因

  • 書寫錯(cuò)誤
  • 當(dāng)然,這個(gè)錯(cuò)誤不是你單詞書寫錯(cuò)誤
  • 只要的原因是因?yàn)槟愕倪@個(gè) 方法里面沒(méi)有 commit 這個(gè)方法
  • 為什么沒(méi)有?其實(shí)它是有的,只不過(guò)在 context 里面
  • 你可能是直接寫 commit(xxx)了

錯(cuò)誤展現(xiàn)過(guò)程

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

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

為什么是 dispatch ,因?yàn)槟悴皇怯?commit 了嗎?

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

然后就是代碼:

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

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

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

或者這樣:

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

vuex模塊化 commit()時(shí)報(bào)錯(cuò) unknown mutation type:xxx

廢話不多說(shuō)直接上問(wèn)題

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

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

increment方法觸發(fā)后,由于邏輯十分簡(jiǎn)單我就直接給到了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ā)后將信息封裝成對(duì)象直接給到mutations,然后一個(gè)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起來(lái)后,

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

于是我把$store撈出來(lái),找到_mutations

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

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

然后我將Count的加上countAbout反而報(bào)錯(cuò)

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

于是我寫了一個(gè)臨時(shí)的test模塊。分別copy Count,Person模塊的js,

然后我以為是命名的問(wèn)題,因?yàn)槲业膬蓚€(gè)模塊的命名一個(gè)有下劃線,一個(gè)沒(méi)有下劃線,于是:

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

于是我有寫了兩個(gè)測(cè)試模塊 test demo

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

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

總結(jié)

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

相關(guān)文章

  • Element-UI日期選擇器(選擇日期范圍)禁用未來(lái)日期實(shí)現(xiàn)代碼

    Element-UI日期選擇器(選擇日期范圍)禁用未來(lái)日期實(shí)現(xiàn)代碼

    我們?cè)诰W(wǎng)頁(yè)開(kāi)發(fā)時(shí)通常需要用到一些日期組件來(lái)方便用戶選擇時(shí)間,其中element日期組件是一個(gè)非常好用的工具,這篇文章主要給大家介紹了關(guān)于Element-UI日期選擇器(選擇日期范圍)禁用未來(lái)日期的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • vue 的 Render 函數(shù)

    vue 的 Render 函數(shù)

    Vue 推薦在絕大多數(shù)情況下使用模板來(lái)創(chuàng)建你的 HTML。然而在一些場(chǎng)景中,你真的需要 JavaScript 的完全編程的能力。這時(shí)你可以用渲染函數(shù),它比模板更接近編譯器。下面就和小編一起來(lái)學(xué)習(xí)下面文章內(nèi)容吧
    2021-09-09
  • 如何使用vuex實(shí)現(xiàn)兄弟組件通信

    如何使用vuex實(shí)現(xiàn)兄弟組件通信

    這篇文章主要給大家介紹了關(guān)于如何使用vuex實(shí)現(xiàn)兄弟組件通信的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • vue路由--網(wǎng)站導(dǎo)航功能詳解

    vue路由--網(wǎng)站導(dǎo)航功能詳解

    這篇文章主要介紹了vue路由--網(wǎng)站導(dǎo)航功能詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue項(xiàng)目中chunk-vendors.js提示報(bào)錯(cuò)的查看方法(最新推薦)

    vue項(xiàng)目中chunk-vendors.js提示報(bào)錯(cuò)的查看方法(最新推薦)

    在vue項(xiàng)目中,chunk-vendors.js報(bào)出的錯(cuò)誤提示經(jīng)常會(huì)導(dǎo)致開(kāi)發(fā)者困惑,正確查看錯(cuò)誤的方法是從錯(cuò)誤提示的詳細(xì)信息中找到報(bào)錯(cuò)原因,下面給大家分享vue項(xiàng)目中chunk-vendors.js提示報(bào)錯(cuò)的查看方法,感興趣的朋友一起看看吧
    2024-12-12
  • vue2與vue3下如何訪問(wèn)使用public下的文件

    vue2與vue3下如何訪問(wèn)使用public下的文件

    這篇文章主要介紹了vue2與vue3下如何訪問(wèn)使用public下的文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue全局注冊(cè)與局部注冊(cè)兩種組件注冊(cè)的方式

    Vue全局注冊(cè)與局部注冊(cè)兩種組件注冊(cè)的方式

    本文主要介紹了Vue全局注冊(cè)與局部注冊(cè)兩種組件注冊(cè)的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解在Vue.js編寫更好的v-for循環(huán)的6種技巧

    詳解在Vue.js編寫更好的v-for循環(huán)的6種技巧

    這篇文章主要介紹了詳解在Vue.js編寫更好的v-for循環(huán)的6種技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Vue監(jiān)聽(tīng)數(shù)據(jù)渲染DOM完以后執(zhí)行某個(gè)函數(shù)詳解

    Vue監(jiān)聽(tīng)數(shù)據(jù)渲染DOM完以后執(zhí)行某個(gè)函數(shù)詳解

    今天小編就為大家分享一篇Vue監(jiān)聽(tīng)數(shù)據(jù)渲染DOM完以后執(zhí)行某個(gè)函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 部署Vue項(xiàng)目到服務(wù)器后404錯(cuò)誤的原因及解決方案

    部署Vue項(xiàng)目到服務(wù)器后404錯(cuò)誤的原因及解決方案

    文章介紹了Vue項(xiàng)目部署步驟以及404錯(cuò)誤的解決方案,部署步驟包括構(gòu)建項(xiàng)目、上傳文件、配置Web服務(wù)器、重啟Nginx和訪問(wèn)域名,404錯(cuò)誤通常是由于歷史模式問(wèn)題導(dǎo)致的,解決方法是修改Nginx配置,將所有頁(yè)面請(qǐng)求重定向到index.html,并在Vue應(yīng)用中覆蓋所有路由情況
    2025-02-02

最新評(píng)論

老河口市| 承德县| 调兵山市| 芦山县| 榕江县| 宁海县| 合川市| 蒙自县| 黔西| 武邑县| 互助| 宁晋县| 肃南| 普宁市| 全南县| 法库县| 新绛县| 四子王旗| 乐亭县| 咸阳市| 陆河县| 苏尼特右旗| 霞浦县| 旬邑县| 乐清市| 孟连| 聂拉木县| 贵州省| 康平县| 桂阳县| 布尔津县| 康定县| 咸宁市| 民丰县| 宜春市| 肃北| 桐城市| 定安县| 循化| 明水县| 佛冈县|