別のアクション内からアクションを呼び出す


133

私の行動には次の設定があります。

get1: ({commit}) => {
  //things
  this.get2(); //this is my question!
},
get2: ({commit}) => {
  //things
},

あるアクションを別のアクションから呼び出すことができるようにしたいので、この例ではget2()、内から呼び出すことができるようにしますget1()。これは可能ですか?可能な場合、どうすればできますか?

回答:


260

dispatch最初のパラメーターで渡されたオブジェクトのメソッドにアクセスできます。

get1: ({ commit, dispatch }) => {
  dispatch('get2');
},

これはドキュメントでカバーされています


1
アクションが完了した後で何かを行う方法はありますか?基本的にこれをthen()
muttley91 2017

1
うん、それは私がリンクしたドキュメンテーションページで完全にカバーされています
-12:44の

3
別のストアからアクションをディスパッチするにはどうすればよいですか?例:店舗でAIがやりたいdispatch('B/someaction')
Guus


4

ペイロードを必要としないアクションの場合

actions: {
    BEFORE: async (context, payload) => {
    },
    AFTER: async (context, payload) => {
        await context.dispatch('BEFORE');
    }
}

ペイロードを必要とするアクションの場合

actions: {
    BEFORE: async (context, payload) => {
    },
    AFTER: async (context, payload) => {
        var payload = {}//prepare payload
        await context.dispatch('BEFORE', payload);
    }
}

1
export actions = {
  GET_DATA (context) {
     // do stuff
     context.dispatch('GET_MORE_DATA');
  },

  GET_MORE_DATA (context) {
    // do more stuff
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.