Виклик дії з іншої дії


135

У мене є така настройка для моїх дій:

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

Я хочу мати можливість викликати одну дію всередині іншої, тому в цьому прикладі я хочу мати можливість дзвонити get2()зсередини get1(). Чи можливо це, і якщо так, то як це зробити?

Відповіді:


261

Ви маєте доступ до dispatchметоду в об'єкті, переданому в першому параметрі:

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

Це висвітлено в документації .


1
Чи є спосіб зробити щось, коли дія буде завершена? В основному використовувати це з then()?
muttley91

1
Так, це повністю висвітлено на сторінці документації, яку я пов’язував
подякував

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);
    }
}

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.