2017-03-23 7 views
17

名前空間のモジュール間でアクションをディスパッチできますか?2つの名前空間vuexモジュール間でアクションをディスパッチする方法はありますか?

など。私はvuexモジュール "gameboard"と "通知"を持っています。それぞれは名前空間です。私は、ゲームボードから通知モジュールにアクションをディスパッチしたいと思います。

// store/modules/gameboard.js 
const actions = { 
    myaction ({dispatch}) { 
     ... 
     dispatch('notification/triggerSelfDismissingNotifcation', {...}) 
    } 
} 

// store/modules/notification.js 
const actions = { 
    triggerSelfDismissingNotification (context, payload) { 
     ... 
    } 
} 

しかし、私はこれをしようとするとき、私は事のvuexが私の中のアクションを派遣しようとしている私を作るのエラーを取得:

私は、私はこのようなディスパッチアクション名にモジュール名を使用すると考えていましたゲームボード・モジュール:

[vuex】未知のローカルアクションタイプ:通知/ triggerSelfDismissingNotification、グローバルタイプ:ゲームボード/通知/ triggerSelfDismissingNotification

vuexモジュールからモジュールにディスパッチする方法はありますか、ルートvuexインスタンスに何らかの種類のブリッジを作成する必要はありますか?

答えて

38

あなたはちょうどあなたがルートコンテキストから派遣していることを指定する必要があります発送はルートに到達したときに

// from the gameboard.js vuex module 
dispatch('notification/triggerSelfDismissingNotifcation', {...}, {root:true}) 

が今では、通知モジュールへの正しい名前空間のパスを持つことになります(ルート・インスタンスからの相対)。

これは、あなたのvuexストアモジュールにnamespaced: trueを設定していることを前提としています。

+0

Noice :)助けてくれてありがとう! –

+6

これは私の解決策を探すためにインターネット上で唯一のヒットです。回答ありがとうございます。 –

+1

@PeterRoehlen私にとっても同じです。私は公式の文書を見ることができ、このオプションは文書化されていません。 – Zetch

関連する問題