एक कार्रवाई को दूसरी कार्रवाई के भीतर से कॉल करें


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
मैं किसी अन्य स्टोर से कार्रवाई कैसे भेज सकता हूं? उदाहरण के लिए एआई स्टोर करना चाहते हैं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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.