2017-08-19 15 views
5

नहीं कहा जा रहा है मेरे पास रिएक्ट/मोबक्स ऐप है। जब मैं स्टोर में बदलाव कर रहा हूं, तो घटक अद्यतन (पुनः प्रतिपादन) कर रहा है, लेकिन मुझे कुछ और कार्यक्षमता जोड़ने के लिए कुछ तुलना करने की आवश्यकता है, इसलिए मैं घटक WillReceiveProps (nextProps) का उपयोग करना चाहता हूं और this.props के साथ अगलीप्रॉप की तुलना करना चाहता हूं। किसी भी तरह से इसे नहीं कहा जा रहा है। कोई विचार, मैं क्या गलत कर रहा हूं, या मैं और क्या कर सकता हूं, इसे प्राप्त करने के लिए?प्रतिक्रिया/मोबक्स - घटक पुनः प्रतिपादन है, लेकिन घटक WillReceiveProps() को

+0

अपना कोड यहां पेस्ट करें, कृपया –

+0

इसे देखें: https://github.com/mobxjs/mobx-react/issues/281 – robertklep

+2

और विशेष रूप से ** urugator ** स्पष्टीकरण पर। https://github.com/mobxjs/mobx-react/issues/281#issuecomment-309410018 – felixmosh

उत्तर

1

tl; डॉ: componentWillUpdate और componentDidUpdate


वस्तु स्टोर पारित कर एक आधार के रूप में कभी नहीं बदलता, तब भी जब इसकी सामग्री में परिवर्तन का उपयोग करें। @observable का उपयोग करने की चाल यह है कि यह प्रोप को बदलने के बिना घटक में अद्यतन को ट्रिगर करेगा। तो लाइफसाइक्ल फ़ंक्शंस का उपयोग करना चाहिए जैसे कि क्वॉम्पोनेंट अपडेट, घटकविल्लरसीवप्रॉप और घटकडिड रिसीवप्रॉप काम नहीं करेंगे क्योंकि जब घटक या प्रोप या राज्य में परिवर्तन होता है तो वे ट्रिगर होते हैं। मोबक्स डॉक्टर shouldComponentUpdate अनुभाग में इसे अच्छी तरह से समझाता है।

तो, एक अवलोकन में एक अद्यतन को पकड़ने के लिए, हमें जीवन चक्र के ढेर में थोड़ा गहरा होना चाहिए और componentWillUpdate और componentDidUpdate का उपयोग करना चाहिए।