Başka bir eylemin içinden bir eylem çağırın


135

Eylemlerim için aşağıdaki kuruluma sahibim:

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

Bir eylemi diğerinden çağırabilmek istiyorum, bu nedenle bu örnekte get2()içeriden arayabilmek istiyorum get1(). Bu mümkün mü ve eğer öyleyse, bunu nasıl yapabilirim?

Yanıtlar:


265

dispatchİlk parametrede iletilen nesnedeki yönteme erişiminiz vardır :

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

Bu, belgelerde kapsanmaktadır .


1
Bir eylem tamamlandıktan sonra bir şeyler yapmanın bir yolu var mı? Temelde bunu bir then()?
muttley91

1
Evet, bağladığım dokümantasyon sayfasında tamamen kapsanmıştır
teşekkürler

3
Başka bir mağazadan bir işlemi nasıl gönderebilirim? ör. mağazada AI yapmak istiyorumdispatch('B/someaction')
Guus


4

yük gerektirmeyen eylemler için

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

yük gerektiren eylemler için

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

0

parametreleri gönderirken de geçebiliriz.

dispatch('fetchContacts', user.uid);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.