Я пишу приложение Electron, используя Vue и Vuex.
Мой магазин выглядит следующим образом (counter.js
):
const state = {
main: 5
};
const mutations = { // synchronous tasks
INCREMENT_MAIN_COUNTER (state) {
state.main++;
}
};
const getters = {
count: (state) => {
return state.main;
}
};
export default {
state, getters, mutations
}
Мой компонент Vue выглядит следующим образом (LandingPage.vue
):
<template>
<div id="count-box">
{{count}}
<button @click="pressed">Increment counter</button>
</div>
</template>
<script>
import counter from '../store';
export default {
name: 'landing-page',
computed: {
count: () => {
return counter.getters.count;
}
},
methods: {
pressed: () => {
counter.commit('INCREMENT_MAIN_COUNTER');
}
}
};
</script>
Когда я нажимаю кнопку для увеличения, вызывается commit
и вызывается следующее исключение:
Uncaught Error: [Vuex Electron] Please, don't use direct commit's, use dispatch instead of this.
at Store.store.commit (.../node_modules/vuex-electron/dist/shared-mutations.js:1)
at VueComponent.pressed (LandingPage.vue?b116:20)
at invoker (vue.esm.js?a026:2027)
at HTMLButtonElement.fn._withTask.fn._withTask (vue.esm.js?a026:1826)
Я не совсем понимаю, что моглобыть причиной этого, как я следовал https://www.youtube.com/watch?v=LW9yIR4GoVU и https://vuex.vuejs.org/guide/mutations.html, которые, кажется, делают это таким образом.