2016-04-26 15 views
6

मैं अपने ऐप्स में से एक को नोड/प्रतिक्रिया पर ES6 पर माइग्रेट कर रहा हूं और मेरे पास एक प्रश्न है कि बच्चों को प्रोप कैसे पारित किया जाता है। मैंने पदों का एक समूह पढ़ा और कुछ पता यह है जबकि अन्य नहीं करते हैं। असल में, क्या मैं अब तक देखा है यह है:es6 बच्चे घटक में प्रोप प्राप्त करने पर प्रतिक्रिया

export default class SomeComponent extends React.Component { 
    constructor(props) { 
     super(props); 
    } 
    render() { 
     return (
      <div> 
       {this.props.text} <<< Props used here 
      </div> 
     ); 
    } 
} 

लेकिन मैं निम्नलिखित के साथ काम करने के लिए अपने घटक प्राप्त करने में सक्षम किया गया है:

export default class SomeComponent extends React.Component { 
    constructor() { 
     super(); <<< notice no props in parentheses 
    } 
    render() { 
     return (
      <div> 
       {this.props.text} <<< Props used here 
      </div> 
     ); 
    } 
} 

वहाँ एक कारण है कि मैं पास करना चाहिए है मेरे कन्स्ट्रक्टर और सुपर कॉल के लिए कोष्ठक में प्रोप? या क्या मैं अपना कोड जिस तरह से

उत्तर

0

आपको प्रोप को पास करना होगा क्योंकि आप React.Component से विस्तार कर रहे हैं, अन्यथा आपको कन्स्ट्रक्टर में इस.प्रॉप तक पहुंचने की अनुमति नहीं दी जाएगी।

यह किसी प्रकार की रचना पैटर्न है।

+0

लेकिन यह काम करता है, मैं अभी चल रहा हूँ और उसके काम करने –

+3

अच्छी तरह से मुझे लगता है कि इसके लिए आवश्यक नहीं लगता है कि जब तक आप, निर्माता में this.props उपयोग करने के लिए उदाहरण के लिए, एक प्रारंभिक निर्धारित करने की आवश्यकता राज्य – QoP

+0

जो अधिक समझ में आता है, परीक्षण किया जाता है और आप सही हैं –

1

जब तक आप इस का उपयोग नहीं करना चाहते हैं, तब तक आपको प्रोप को सुपर पास करने की आवश्यकता नहीं है।

https://stackoverflow.com/a/34995257/3238350

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