2017-10-09 40 views
5

मैं अपने आवेदन में redux लागू किया है। मेरा परिदृश्य तब होता है जब एक घटक से दूसरे घटक में नेविगेट किया जाता है, मैं redux स्थिति अद्यतन कर रहा हूं। तो जब मैं पिछले घटक पर वापस आ गया, तो अंतिम redux राज्य डेटा प्राप्त करना।प्रतिक्रिया-मूल: रेडक्स राज्य के लिए कब जाना है और ऐप में प्रतिक्रिया दें?

अपेक्षित परिणाम:

जब मैं वापस पिछले घटक के लिए आते हैं, एक ही राज्य में होने की जरूरत है। मैं हालिया परिवर्तन डेटा नहीं चाहता हूं।

Ex: Marie ->April, when I go back, Marie <- April 

वास्तविक परिणाम:

इसका हाल के परिवर्तन डेटा अपडेट।

Ex: Marie ->April, when I go back, April <- April 

मैं इसके लिए एक ऐप संरचना कैसे लिख सकता हूं? क्या यह redux यहां आवश्यक है? या नेविगेट करते समय params के रूप में पास करके घटक स्थिति के साथ प्रबंधन करना चाहिए?

उत्तर

2

मुझे यकीन है कि अगर मेरा उत्तर कार्यान्वयन का सही तरीका है नहीं कर रहा हूँ। लेकिन वर्तमान में, मैं इसे इस तरह कर रहा हूँ: (: this.state, वर्ग के क्षेत्रों, एक वैश्विक वस्तु या Redux पूर्व)

एक घटक के State कई स्थानों के माध्यम से बिखरे हुए किया जा सकता है।

  • घटक के राज्य का हिस्सा है जब वापस और फोर्ड नेविगेट संरक्षित करने की आवश्यकता है:

    मैं अपने प्रश्न से क्या समझते हैं कि आप एक साथ 2 आवश्यकताओं के साथ काम कर रहे हैं है। (समान रहना)

  • घटक के राज्य का एक अन्य भाग अन्य घटकों के साथ साझा करने की जरूरत है जब वापस और फोर्ड नेविगेट।

मुझे दोनों आवश्यकताओं के लिए एक समाधान के बारे में पता नहीं है। अगर मुझे ऐसा करना है तो मैं घटक की स्थिति को इस तरह से डिजाइन कर दूंगा कि यह अलग-अलग स्थानों के माध्यम से वितरित या बिखरा हुआ है, प्रत्येक अपने उद्देश्यों को पूरा करता है।

  1. राज्य है जो संरक्षित करने this.state में रखा जाएगा की जरूरत का हिस्सा है: असल में, मैं 2 अलग समाधान का उपयोग करें।
  2. राज्य में जो साझा करने की जरूरत का हिस्सा Redux में डाल दिया जाएगा।

इस समाधान काम करने के लिए के लिए, मैं react-redux, केवल redux प्रयोग नहीं करते।redux में store.getState() नामक एक विधि है जो एकल Redux स्थिति ऑब्जेक्ट को वापस कर देगी। मैं store वैश्विक स्तर पर केवल पढ़ने योग्य-पहुंच योग्य बनाता हूं और उस घटक के हिस्सों को प्रस्तुत करने के लिए इसका उपयोग करता हूं, जिसे साझा डेटा की आवश्यकता होती है।

+0

यह वास्तव में क्या मेरे मन में उलझन में है। आपके साफ और साफ स्पष्टीकरण के लिए धन्यवाद। अब मैं पूरी तरह से मंजूरी दे दी हूँ। बहुत बहुत धन्यवाद। – Balasubramanian

+0

मुझे भी यकीन नहीं है, लेकिन मैं उपर्युक्त अवधारणा का पालन कर रहा हूं। हमें रेडक्स में सभी डेटा नहीं डालना चाहिए। बहुत बहुत धन्यवाद। –

1

यदि डेटा एक से अधिक कक्षाओं में आवश्यक है तो Redux स्थिति का उपयोग करें अन्यथा प्रतिक्रिया स्थिति का उपयोग करें, यह घटक के जीवन चक्र पर निर्भर करता है। रूप redux राज्य वैश्विक है और प्रतिक्रिया राज्य केवल वर्ग के भीतर जो यह परिभाषित किया गया है में के लिए सक्रिय है। अपनी हालत के अनुसार आप के रूप में आप इसे करने के लिए वापसी करेंगे पहले घटक के लिए redux राज्य का उपयोग कर सकते हैं और आप अपने डेटा के रूप में मारी चाहते हैं और दूसरे घटक के लिए राज्य प्रतिक्रिया आप अपने डेटा अप्रैल चाहें इसका उपयोग।

2

यह जानना अच्छा है कि किस समय उपयोग करना है।

अवधि

राज्य के विभिन्न टुकड़े समय अलग-अलग मात्रा के लिए बनी रहे हैं। मैं शिथिल इन समूहों में समय को वर्गीकृत:

लघु अवधि: - डेटा है कि तेजी से अपने अनुप्रयोग में बदल जाएगा दुकान स्थानीय में डेटा के इस प्रकार राज्य

मध्यम अवधि प्रतिक्रिया: डेटा संभावना है कि होगा

दीर्घकालिक Redux दुकान में राज्य की दुकान - अपने ऐप्लिकेशन में थोड़ी देर के लिए जारी रहती है: डेटा है कि आपकी साइट के लिए कई दौरों के बीच पिछले चाहिए - कहीं और होने की संभावना अधिक जानकारी के लिए यहां

जांच एक सर्वर पर या स्थानीय भंडारण में एक डेटाबेस के लिए संग्रहीत: React State vs Redux State When and Why?

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