2016-12-21 5 views
2

Ich verwende den folgenden Code, um einen Zähler in store.js mit Vuex zu inkrementieren. Sie wissen nicht, warum, wenn ich die Schritttaste klicken, heißt es:Unbekannte Aktion: Zähler wird nicht mit Vuex erhöht (VueJS)

[vuex] unbekannt Aktionstyp: INCREMENT

store.js

import Vuex from 'vuex' 
import Vue from 'vue' 
Vue.use(Vuex) 
var store = new Vuex.Store({ 
    state: { 
    counter: 0 
    }, 
    mutations: { 
    INCREMENT (state) { 
     state.counter++; 
    } 
    } 
}) 
export default store 

IcrementButton .vue

<template> 
    <button @click.prevent="activate">+1</button> 
</template> 

<script> 
import store from '../store' 

export default { 
    methods: { 
    activate() { 
     store.dispatch('INCREMENT'); 
    } 
    } 
} 
</script> 

<style> 
</style> 

Antwort

3

Sie haben commit in den Verfahren verwenden, wie Sie eine mutation auslösen, keine action:

export default { 
    methods: { 
    activate() { 
     store.commit('INCREMENT'); 
    } 
    } 
} 

Aktionen sind ähnlich Mutationen, dem Unterschied, dass:

  • Statt den Zustand mutiert Aktionen begehen Mutationen.
  • Aktionen können beliebige asynchrone Operationen enthalten.
+0

@Great! Vielen Dank. Das hat funktioniert. Was ist der Unterschied zwischen Mutationen und Handlungen? Code wie oben beschrieben ist ok? –

+2

@GijoVarghese Hinzugefügt in der Antwort – Saurabh

Verwandte Themen