2016-04-02 9 views
16

कोई भी टाइपस्क्रिप्ट में एक प्रतिक्रिया घटक वर्ग पर defaultProps परिभाषित करने का एक उदाहरण दिखा सकता है?टाइपस्क्रिप्ट का उपयोग कर एक प्रतिक्रिया घटक वर्ग पर डिफ़ॉल्टप्रॉप घोषित कैसे करें?

interface IProps {} 
interface IState {} 

class SomeComponent extends Component<IProps, IState> { 
    // ... defaultProps ? 
    // public defaultProps: IProps = {}; // This statement produces an error 

    constructor(props: IProps) { 
     super(props); 
    } 

    // ... 
} 

उत्तर

35

आप डिफ़ॉल्ट रंगमंच की सामग्री इस तरह से परिभाषित कर सकते हैं:

class SomeComponent extends Component<IProps, IStates> { 
    public static defaultProps: IProps = { /* ... */ }; 
    // ... 
} 
+2

इस के साथ काम करने के लिए:

export class Counter extends React.Component { constructor(props) { super(props); this.state = {count: props.initialCount}; this.tick = this.tick.bind(this); } tick() { this.setState({count: this.state.count + 1}); } render() { return ( <div onClick={this.tick}> Clicks: {this.state.count} </div> ); } } Counter.propTypes = { initialCount: React.PropTypes.number }; Counter.defaultProps = { initialCount: 0 }; 

इस वर्ग के शरीर के अंदर एक स्थिर क्षेत्र के रूप में परिभाषित करने के लिए defaultProps टाइपप्रति में बराबर है टाइपस्क्रिप्ट, आपको अर्धविराम से पहले 'आईप्रॉप के रूप में' जोड़कर ऑब्जेक्ट को आईप्राप्स में डालना चाहिए। –

+6

प्रदान किया गया लिंक अब 'डिफ़ॉल्टप्रॉप' पर चर्चा नहीं करता है। इसके बजाय https://facebook.github.io/react/docs/react-component.html#defaultprops – WoodenKitty

+0

धन्यवाद @WoodenKitty, थोड़ी देर के लिए दस्तावेज़ों को खोजने का प्रयास कर रहा है। Google कोई मदद नहीं थी –

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