দুটি নেমস্পিড ভ্যুক্স মডিউলগুলির মধ্যে ক্রিয়া প্রেরণের কোনও উপায় আছে কি?


159

নেমস্পিড মডিউলগুলির মধ্যে কোনও ক্রিয়া পাঠানো কি সম্ভব?

উদাহরণস্বরূপ আমার কাছে ভিউক্স মডিউল "গেমবোর্ড" এবং "বিজ্ঞপ্তি" রয়েছে। প্রতিটি নাম গতিযুক্ত। আমি গেমবোর্ড থেকে বিজ্ঞপ্তি মডিউলে একটি ক্রিয়া প্রেরণ করতে চাই।

আমি ভেবেছিলাম আমি প্রেরণের ক্রিয়া নামে এইভাবে মডিউলটির নামটি ব্যবহার করতে পারি:

// store/modules/gameboard.js
const actions = {
    myaction ({dispatch}) {
        ...
        dispatch('notification/triggerSelfDismissingNotifcation', {...})
    }
}

// store/modules/notification.js
const actions = {
    triggerSelfDismissingNotification (context, payload) {
        ...
    }
}

তবে আমি যখন এটি করার চেষ্টা করি তখন আমি এমন ত্রুটিগুলি পাই যা আমাকে ভয়েক্স আমার গেমবোর্ড মডিউলটির মধ্যে একটি ক্রিয়া প্রেরণের চেষ্টা করছে:

[vuex] অজানা স্থানীয় ক্রিয়াকলাপ: বিজ্ঞপ্তি / ট্রিগারসেলফ খারিজ নোটিফিকেশন, গ্লোবাল টাইপ: গেমবোর্ড / বিজ্ঞপ্তি / ট্রিগারসেলফ খারিজ নোটিকেশন

ভেক্স মডিউল থেকে মডিউলে প্রেরণের কোনও উপায় আছে বা রুট ভ্যেক্স উদাহরণটিতে আমার কোনও ধরণের ব্রিজ তৈরি করা দরকার?

উত্তর:


343

আপনাকে কেবল এটি নির্দিষ্ট করতে হবে যে আপনি মূল প্রসঙ্গ থেকে প্রেরণ করছেন:

// from the gameboard.js vuex module
dispatch('notification/triggerSelfDismissingNotifcation', {...}, {root:true})

এখন যখন প্রেরণটি মূলটিতে পৌঁছেছে তখন এটি বিজ্ঞপ্তি মডিউলের (মূল উদাহরণের সাথে সম্পর্কিত) সঠিক নেমস্পেসের পথ পাবে।

এটি ধরে namespaced: trueনিচ্ছে যে আপনি আপনার ভেক্স স্টোর মডিউলটি সেট করছেন ।


39
সমাধানের জন্য আমার অনুসন্ধানের জন্য এটি ইন্টারনেটে একমাত্র হিট। উত্তর করার জন্য ধন্যবাদ.
পিটার রোহেলেন

8
নিখুঁতভাবে বলতে গেলে , এটি " নামস্পিড মডিউলগুলিতে গ্লোবাল অ্যাসেটগুলি অ্যাক্সেস করা" এ vuex.vuejs.org/en/modules.html এ এখানে নথিভুক্ত করা হয়েছে । যদিও এটা বিশ্রী ধরনের হয় নিতে।
জেক

2
আমি vue পছন্দ করি, তবে আমার কাছে মনে হয় Vuex এটিকে সহজ করার চেয়ে অসুবিধার আরও স্তর যুক্ত করে। এখন আমি জানি যে এটি ভ্যুেক্সের উদ্দেশ্য নয় তবে এখনও, এটি বিরক্তিকর নয় যে আমি এই উদাহরণের মতো কিছু কনভেনশন সম্পর্কে সর্বদা সচেতন হওয়া দরকার notification/trigger, তবে যদি আমি এটি আরও কিছুটা জেনেরিক হতে চাই তবে ${NOTIF_TYPE_NAME}/${NOTIF_TRIGGER_ACTION}এখনও স্ল্যাশ প্রয়োজন, বা এমনকি এটির জন্য একটি সহায়ক ফাংশন তৈরি করুন, আমি অনুভব করি যে আমি যখন আমার অ্যাপ্লিকেশনটি আরও মডুলার হতে চাই তখন আমি যে পরিমাণ পাই তার চেয়ে অনেক বেশি অর্থ প্রদান করি। এটি আমার মতামত
ডিমা গিমবার্গ

11
আপনি ব্যবহার করতে পারেন this.dispatch। এটির দরকার নেই {root: true}। এটি বিশ্বব্যাপী।
এম কে্যাটলিস্ট

6
না আপনি ব্যবহার করতে হবে {root: true}। আপনার বোঝানো কেসটি সম্ভবত কোনও শিশু মডিউলে প্রেরণ করা, যা প্রকৃতপক্ষে (এবং স্পষ্টতই) এই পতাকাটির প্রয়োজন নেই।
কুর্সুস

0

মেনসিওনড @ এম কে্যাটলাস্ট 3 হিসাবে

আপনি ব্যবহার করতে পারেন this.dispatch। এটি {root: true}প্রেরণ বিকল্পে প্রয়োজন হয় না । এটি বিশ্বব্যাপী।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.