2016-08-23 2 views
2

Ich schaute auf die Dokumentation für die DatePickerIOS Komponente und sie verwenden getDefaultProps(), um die Requisiten in der Komponente zu initialisieren.Was entspricht der getDefaultProps-Funktion, die ES6 in React Native verwendet?

getDefaultProps: function() { 
    return { 
     date: new Date(), 
     timeZoneOffsetInHours: (-1) * (new Date()).getTimezoneOffset()/60, 
    }; 
    }, 

    getInitialState: function() { 
    return { 
     date: this.props.date, 
     timeZoneOffsetInHours: this.props.timeZoneOffsetInHours, 
    }; 
    }, 

Was entspricht der Verwendung der ES6-Syntax? Weil ich mit gewesen:

constructor(props) { 
    super(props); 

    this.state = { 
    //equivalent to getInitialState is here 
    }; 
} 

soll ich tun this.props = {} meine Standard-Requisiten einrichten?

+1

Bitte markieren Sie eine Antwort als korrekt, wenn sie geholfen hat. –

Antwort

7

sehen:

https://github.com/facebook/react/issues/3725

class X extends React.Component { 
} 
X.defaultProps = {...} 

Wenn Sie das babel-plugin-Transform-Klasse-Eigenschaften Paket verwenden, können Sie dies tun:

class X extends React.Component { 
    static defaultProps = {...} 
} 
+3

Warum der Downvote? –

1
class Video extends React.Component { 
    static defaultProps = { 
    autoPlay: false, 
    maxLoops: 10, 
    } 
    static propTypes = { 
    autoPlay: React.PropTypes.bool.isRequired, 
    maxLoops: React.PropTypes.number.isRequired, 
    posterFrameSrc: React.PropTypes.string.isRequired, 
    videoSrc: React.PropTypes.string.isRequired, 
    } 
    state = { 
    loopsRemaining: this.props.maxLoops, 
    } 
} 

https://babeljs.io/blog/2015/06/07/react-on-es6-plus

Verwandte Themen