在許多示例中,我已經看到要在反應組件內部管理狀態,您必須使用getInitialState(如本例中的示例)。使用ES6和ES7的ReactJs中的狀態
var LikeButton = React.createClass({
getInitialState: function() {
return {liked: false};
},
handleClick: function(event) {
this.setState({liked: !this.state.liked});
},
render: function() {
var text = this.state.liked ? 'like' : 'haven\'t liked';
return (
<p onClick={this.handleClick}>
You {text} this. Click to toggle.
</p>
);
}
});
但是在使用getInitalState()的ES6語法中不再有效。那麼如何使用ES6語法來管理反應組件中的狀態?
一個例子是
// Future Version
export class Counter extends React.Component {
static propTypes = { initialCount: React.PropTypes.number };
static defaultProps = { initialCount: 0 };
state = { count: this.props.initialCount };
tick() {
this.setState({ count: this.state.count + 1 });
}
render() {
return (
<div onClick={this.tick.bind(this)}>
Clicks: {this.state.count}
</div>
);
}
}
感謝
十分感謝,我把handeClick功能閱讀器之外,並會得到一個空值錯誤。 –
雖然這是在每個RENDER上創建一個新的HandleClick函數不是很好 – AndrewMcLagan