2017-06-08 6 views
0

私のコンポーネント:VueJS + VUEX - データ転送に関する問題

<div id="event-picker"> 
    <template v-for="event in $store.state.events"> 
    <a href="#" v-on:click.prevent="$store.dispatch('prepareEventForm', event)">{{ event.artist }}</a> 
    </template> 
</div> 

私の店(突然変異):

prepareEventForm(state, event) { 
    state.form.time = event.time 
    state.form.date = event.date 
    state.form.event = event.event 
    state.form.artist = event.artist 
    state.form.organizer = event.organizer 
    state.form.location = event.location 
    state.showForm = true 
} 

私が手にエラーが問題になる可能性があるCannot read property 'time' of undefined

のですか?

EDIT:

これは私のアクションメソッドです:

prepareEventForm({ commit }) { 
    commit('prepareEventForm') 
} 
+0

メソッド、 'event'は' undefined'です – thanksd

+0

はい私はそれを知っていますが、どうすれば修正できますか? –

+0

'dispatch'メソッドで' undefined'イベントを渡さないように注意してください。 '$ store.state.events'は何を評価するのですか? – thanksd

答えて

1

あなたがそのエラーを取得している理由は、あなたのprepareEventForm変異に渡されるeventオブジェクトがundefinedであるということです。あなたが$store.dispatch('prepareEventForm', event)を呼び出すとき、それは2番目のパラメータとしてでeventを渡して、あなたのprepareEventFormアクションを呼び出すため

です。

あなたの行動の2番目のパラメータとして eventを追加し、( prepareEventForm 変異を呼ぶものである)あなたの commit呼び出しで2番目のパラメータとしてそれを渡す必要があり

:あなた `prepareEventForm`で

prepareEventForm({ commit }, event) { 
    commit('prepareEventForm', event) 
} 
関連する問題