मैं समझता हूँ कि मैं एक emit.change()
डिस्पैचर की जरूरत है, सभी घटकों को पता है कि कुछ दुकान के अंदर बदल दिया था। लेकिन मैं समझता हूँ कि क्यों मैं सीधे कार्रवाई अंदर से दुकानों बुला के बजाय कार्यों प्रेषण करने की आवश्यकता नहीं है,प्रतिक्रिया/प्रवाह - मुझे एक एक्शन-प्रेषक की आवश्यकता क्यों है?
.i.e। इस के बजाय
var Dispatcher = require('dispatcher');
var MyActions = {
addItem: function(item){
Dispatcher.dispatch({
action: 'ADD_ITEM',
payload: item
})
}
}
: मैं ऐसा क्यों करना चाहिए
var MyStore = require('mystore');
var MyActions = {
addItem: function(item){
MyStore.addItem(item);
}
}
उस मामले कि कई दुकानों में एक ही घटना को सुनने, उदाहरण के लिए के लिए जब StoreA
और StoreB
रूप में अच्छी तरह ADD_ITEM
को सुनने है?
महान उत्तर के लिए धन्यवाद! मेरे पास उससे एक और सवाल है, यही कारण है कि मैं यहां पहली बार इस प्रश्न पर आया था। मुझे एक क्रिया से एक मूल्य (एक नव निर्मित आइटम की आईडी) वापस करने की आवश्यकता है और इसे अगली कार्रवाई में भेज दें। क्या मुझे दूसरी कार्रवाई के बाद कई कार्यों को प्रेषित करने के बजाय स्टोर के भीतर से आईडी सहित अगली कार्रवाई भेजनी चाहिए? दूसरा सवाल है [यहां] (http://stackoverflow.com/questions/33987477/react-flux-return-value-from-flux-dispatcher-store) –
करने के लिए सबसे अच्छी बात एक ही कार्रवाई का उपयोग करना होगा और इसके लिए दोनों दुकानों पर सुनो, और तदनुसार परिवर्तन करें। दरअसल, ऐसा करने का हमेशा एक तरीका होता है। आपको बस थोड़ा सा कोड बदलना होगा। आप इस {data_for_store1: {...}, data_for_store2: {...}, क्रिया: 'ADD_ITEM'} के साथ प्रेषित करते हैं और दोनों स्टोर अब एक ही क्रिया का उपयोग कर सकते हैं। क्या यह मदद करता है? –
यही वह था जो मैं पहले कर रहा था, लेकिन एक्शन 1 स्टोरए में एक नई आईडी बनाता है और मुझे उस नए बनाए गए आईडी को स्टोरबी को किसी भी तरह से पास करने की आवश्यकता है।क्या यह प्रेषक को संशोधित करके किया जा सकता है, ताकि मैं प्रेषण के बाद मूल्य वापस कर सकूं? –