React的getDefaultProps和getInitialState
Posted mengff
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React的getDefaultProps和getInitialState相关的知识,希望对你有一定的参考价值。
getDefaultProps 不是获取默认props,而是设置默认props,主要用在ES5的React写法中
getInitialState 不是获取默认State,而是设置初始的state,主要是用在ES5的React写法中
下面是ES5和ES6的写法对比
//ES5写法 var Video = React.createClass({ getDefaultProps: function(){ return { autoPlay: false, maxLoops: 10 } }, getInitialState: function(){ return { loopsRemaining: this.props.maxLoops } }, propTypes: { autoPlay: React.PropTypes.bool.isRequired, maxLoops: React.PropTypes.number.isRequired, posterFrameSrc: React.PropTypes.string.isRequired, videoSrc: React.PropTypes.string.isRequired } }) //ES6写法 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 } //构造函数写法 constructor(props){ this.state = { ... } } //非构造函数写法 state = { loopsRemaining: this.props.maxLoops } } //组件外部写法 Video.defaultProps = { autoPlay: false, maxLoops: 10 }
以上是关于React的getDefaultProps和getInitialState的主要内容,如果未能解决你的问题,请参考以下文章