অন্য ক্রিয়াটির মধ্যে থেকে একটি ক্রিয়াকলাপ কল করুন


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')
গুয়াস


4

পেডলোডের প্রয়োজন হয় না এমন ক্রিয়াগুলির জন্য for

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.