Vuex

2017-03-05 12 views
5

में एक मॉड्यूल से एक और मॉड्यूल स्थिति बदलें मेरे पास मेरे vuex स्टोर में दो मॉड्यूल हैं।Vuex

var store = new Vuex.Store({ 
    modules: { 
     loading: loading 
     posts: posts 
    } 
}); 

मॉड्यूल loading में, मैं एक संपत्ति saving जो या तो true या false सेट किया जा सकता है और यह भी एक परिवर्तन समारोह नामित TOGGLE_SAVING इस संपत्ति सेट करने के लिए की है।

मॉड्यूल posts में, पोस्ट लाने से पहले और बाद में, मैं संपत्ति saving बदलना चाहता हूं। मैं posts मॉड्यूल में से किसी एक क्रिया से commit('TOGGLE_SAVING') पर कॉल करके कर रहा हूं।

var getPosts = function (context) { 
    contex.commit(TOGGLE_LOADING); 
}; 

जब यह प्रतिबद्ध करने की कोशिश की, मैं सांत्वना

[vuex] unknown local mutation type: TOGGLE_LOADING, global type: posts/TOGGLE_LOADING 

मैं कैसे commit का उपयोग कर एक और मॉड्यूल में राज्य उत्परिवर्तित कर सकते हैं में त्रुटि निम्न गया?

उत्तर

4

सुझाव के रूप में here मापदंडों पालन करते हुए उसे प्रयास करें;

commit('TOGGLE_SAVING', null, { root: true }) 

आपको namespaced को सत्य के रूप में सेट करना पड़ सकता है।

+0

बहुत बढ़िया। यह बहुत अच्छा काम करता है। धन्यवाद –

+1

यदि आप मॉड्यूल और नेमस्पेस का उपयोग कर रहे हैं, तो 'प्रतिबद्ध' में नामस्थान जोड़ने के लिए मत भूलना, जैसे 'प्रतिबद्ध (' नामस्थान/TOGGLE_SAVING ', शून्य, {root: true})' या नहीं तो यह नहीं होगा काम। – brainbag

1

आप किसी अन्य मॉड्यूल में परिभाषित उत्परिवर्तन प्रतिबद्ध करने के लिए action का उपयोग कर सकते हैं, तो आप किसी अन्य मॉड्यूल में राज्य को संशोधित करेंगे।

इस तरह:

posts: { 
    actions: { 
    toggleSavingActions(context) { 
     // some actions 
     context.commit("TOGGLE_SAVING"); // defined in loading module 
    } 
    } 
} 
+0

यह है कि मैंने वास्तव में यह कैसे किया है। मैंने दोनों मॉड्यूल में "नेमस्पेस: सच्चा" भी सेट किया है। लेकिन मुझे अज्ञात स्थानीय उत्परिवर्तन प्रकार मिल रहा है: TOGGLE_LOADING, वैश्विक प्रकार: पोस्ट/TOGGLE_LOADING' –

+1

ओह हाँ। डिफ़ॉल्ट रूप से, मॉड्यूल के अंदर क्रियाएं, उत्परिवर्तन और गेटर्स अभी भी वैश्विक नामस्थान के अंतर्गत पंजीकृत हैं। इसलिए आप नामस्थान को हटा सकते हैं संपत्ति, या उपयोग प्रतिबद्ध ('कुछ म्यूटेशन', शून्य, {रूट: सच}) – Julien

संबंधित मुद्दे