跳到主内容

constructor和getInitialState有什么不同?

· 1分钟阅读

I've seen both used interchangeably.

What are the main use cases for both? Are there advantages / disadvantages? Is one a better practice?

解决方法

The two approaches are not interchangeable. You should initialize state in the constructor when using ES6 classes, and define the getInitialState method when using React.createClass.

See the official React doc on the subject of ES6 classes.

class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
/* initial state */
};
}
}

is equivalent to

var MyComponent = React.createClass({
getInitialState() {
return {
/* initial state */
};
},
});