Vuexを使用して変数を増やしたり減ったりさせるような簡単なアプリを作成し、
mutaionsやactionsの使い方について理解を深めたいと思いコードを作成してみました。
しかし、現状下記のようなエラーが出ており、期待した動作を得ることができませんでした。
error
1unknown local mutation type: increment, global type: count/increment
Nuxt.jsを使用しており、まずpagesディレクトリに下記のようなコードを作成しました。
Vue
1<template> 2 <div> 3 <h2>Counter</h2> 4 <p>count:{{count}}</p> 5 <v-btn color="primary" @click="increment">+</v-btn> 6 <v-btn color="error" @click="decrement">-</v-btn> 7 </div> 8</template> 9<script lang="ts"> 10import { Component, namespace, Vue } from 'nuxt-property-decorator' 11const Count = namespace('count') 12 13@Component({}) 14export default class extends Vue{ 15 @Count.State count:any 16 @Count.Mutation increment!:Function 17 @Count.Action decrement!:Function 18} 19</script>
次にstoreディレクトリに下記のようなコードを作成しました。
TypeScript
1interface State { 2 count:number 3} 4const state = () => ({ 5 count:0 6}) 7const getters = { 8 count:(state:State) => { 9 return state.count 10 } 11} 12const mutaions = { 13 setCount:(state:State,count:number)=>{ 14 state.count = count; 15 } 16} 17const actions = { 18 increment:({commit}:any,state:{count:number})=>{ 19 commit('setCount',state.count +1) 20 }, 21 decrement:({commit}:any,state:{count:number})=>{ 22 commit('setCount',state.count-1) 23 } 24} 25export default { state, getters, mutaions, actions}
どなたかご教示いただけませんでしょうか?
あなたの回答
tips
プレビュー