2015-03-15 9 views
5

के माध्यम से रूट किया जाना चाहिए मैं प्रवाह और प्रतिक्रिया का उपयोग कर एक साधारण प्रोटोटाइप पर काम कर रहा हूं। पहले जब मैंने प्रतिक्रिया का उपयोग किया है, मैंने बाल घटकों से अपने मूल घटकों तक घटनाएं भेजी हैं (जिनके पास बच्चे पर प्रोप कॉलबैक पंजीकृत हैं) और फिर माता-पिता में राज्य बदल दिया।प्रतिक्रिया/प्रवाह- बाल घटक उपयोगकर्ता घटनाओं - सब कुछ प्रेषक

फ्लक्स आर्किटेक्चर के बाद सभी घटनाओं को प्रेषक के माध्यम से उठाया जाना चाहिए? उदाहरण के लिए भी एक सरल उपयोगकर्ता घटना एक चेकबॉक्स का चयन के रूप में इस तरह के इस श्रृंखला के माध्यम से उठाया जाना चाहिए:

  1. घटक ईवेंट हैंडलर में एक कार्रवाई
  2. डिस्पैचर
  3. डिस्पैचर लिए भेज बनाने के एक दुकान के लिए भेजता है
  4. दुकान नियंत्रक दृश्य
  5. नियंत्रक दृश्य वापस दुकान के लिए कॉल परिवर्तन लेने के लिए करने के लिए एक परिवर्तन घटना का उत्सर्जन करता है

धन्यवाद

+0

चूंकि आपने "सभी घटनाओं" जैसे पूर्ण उपयोग किए हैं, इसलिए "नहीं" का जवाब देना आसान है। कीडाउन जैसी घटनाओं का स्टोर में कोई प्रत्यक्ष प्रभाव नहीं पड़ सकता है। हो सकता है कि उदाहरण के लिए एक कुंजी फ़िल्टर की गई हो या यदि यह एंटर कुंजी एक ईवेंट ट्रिगर करता है। शायद आप कुछ और सटीक पूछना चाहते हैं? – WiredPrairie

+0

धन्यवाद। आप कैसे तय करेंगे कि किसी ईवेंट को स्टोर में रूट किया जाना चाहिए या सिर्फ बच्चे और पैरेंट घटकों के अंदर संभाला जाना चाहिए? – jonho

+4

@jonho एक अच्छा बेंचमार्क है, डेटा एप्लिकेशन/डोमेन स्थिति, या क्षणिक, घटक स्थिति है? क्षणिक स्थिति अक्सर घटक को स्थानीय रखने के लिए सबसे अधिक समझ में आता है।इसी प्रकार, पुन: प्रयोज्य घटकों को स्थानीय राज्य का उपयोग करना चाहिए ताकि वे किसी भी विशिष्ट प्रवाह कार्यान्वयन/डेटा से बंधे न हों। –

उत्तर

3

एक कार्रवाई दो स्थितियों पर भेजा जाना चाहिए:

  • उपयोगकर्ता की इनपुट
  • आप एक बच्चे घटक से एक माता पिता के स्तर का डेटा बदलने के लिए है।

अपने मामले में आप प्रेषण के लिए प्रत्येक उपयोगकर्ता की बातचीत के लिए एक कार्रवाई आपके आवेदन पर निर्भर करता है और आप अपने स्वयं तीन सवाल पूछने चाहिए:

  • आप अनुरोध करने की ज़रूरत है अपने बैकएंड के बारे में बताना चेकबॉक्स राज्य?
  • क्या आप किसी भी प्रकार की एपीआई कॉल करते हैं?
  • अन्य गैर-बच्चों के घटकों को इसके बारे में जानने की आवश्यकता है?

यदि ऊपर दिए गए प्रश्नों के उत्तर में से कम से कम उत्तर में 'हां' है तो आपको एक क्रिया भेजनी चाहिए।

2

मुझे लगता है कि यह निर्भरता के बारे में है, अगर आपका ईवेंट निर्भरता बना सकता है या हो सकता है (यानी आपकी जानकारी प्रवाह पर असर पड़ता है या भविष्य की सूचनाओं को निर्धारित करता है) तो आपको एक क्रिया और दुकान का उपयोग करना चाहिए।

एक उदाहरण: आपके पास कई चेकबॉक्स के साथ एक फॉर्म है, मुझे लगता है कि क्रियाओं और दुकानों का उपयोग करना आवश्यक नहीं है, उपयोगकर्ता अपना दिमाग बदल सकता है, चीजों को चेक/अनचेक कर सकता है, जब फॉर्म भेजा जाता है तो यह महत्वपूर्ण होता है, फिर आप एक क्रिया को ट्रिगर करते हैं ।

इसके विपरीत यदि यह चेकबॉक्स 'कुछ नया है तो मुझे सूचित करें' और श्रोता के निर्माण को ट्रिगर करने के बाद आपको एक क्रिया और स्टोर का उपयोग करना चाहिए।

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