2014-12-12 6 views
6

गेटर से घटक स्थिति तक पहुंच प्राप्त करने का प्रयास करते हुए, मैंने देखा कि this सामान्य विधि की तुलना में एक अलग संदर्भ पर सेट है और इसलिए this.state काम नहीं करता है।क्यों प्राप्तकर्ताओं को प्रतिक्रिया घटकों में राज्य तक पहुंच नहीं है?

यहाँ देखें: http://jsfiddle.net/tkaby7ks/

कि क्यों और कैसे मैं एक गेटर से राज्य के लिए उपयोग कर सकते हैं?

उत्तर

13

मुद्दा यह है कि गेटर, वस्तु आप React.createClass के पास की संपत्ति है वर्ग बनाई गई है की नहीं है: एक मूल्य के रूप में व्यवहार करता है यह प्रतिक्रिया होती है। प्रतिक्रिया दृष्टिकोण से, निम्नलिखित 2 कोड के टुकड़े बिल्कुल एक जैसे हैं:

var MyComponent = React.createClass({ 
    foo: "asdf", 
    ... 
}) 

बनाम

var MyComponent = React.createClass({ 
    get foo() { return "asdf" }, 
    ... 
}) 

कार्यों है कि आप createClass को पारित के लिए, प्रतिक्रिया बांधता घटक को this चर, लेकिन टिककर खेल के लिए यह संभव नहीं है।

+0

यह कुल समझ में आता है, धन्यवाद! दुर्भाग्यवश यह गेटर्स को प्रतिक्रिया में बहुत उपयोगी नहीं बनाता है। – vdg

+1

vdg, आप घटक WillMount में Object.defineProperty का उपयोग कर सकते हैं, यह करने के लिए बस एक बहुत ही अजीब चीज है। आपको केवल फ़ंक्शंस का उपयोग करना चाहिए, जिसमें तर्क लेने में सक्षम होने का अतिरिक्त बोनस है :-) – FakeRainBrigand

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