私はdocsから反応することを学んでいますが、この例ではsuper()
が何をしているかわかりません。通常、新しいインスタンスの作成に渡された引数を受け取りませんし、React.Componentのコンストラクタメソッドを呼び出して、これらの引数をインスタンスに組み込みますか?それは何の引数なしで何をしますか? ES6でsuper()は引数と何をするのですか?
class LikeButton extends React.Component {
constructor() {
super();
this.state = {
liked: false
};
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState({liked: !this.state.liked});
}
render() {
const text = this.state.liked ? 'liked' : 'haven\'t liked';
return (
<div onClick={this.handleClick}>
You {text} this. Click to toggle.
</div>
);
}
}
ReactDOM.render(
<LikeButton />,
document.getElementById('example')
);
super()は、ほとんどのクラスベースの言語では、親のコンストラクタを呼び出します。したがって、React.Componentのコンストラクタが呼び出されます。 – Keith
スーパーコンストラクタには、ゼロ引数が意味を持つようにするデフォルトの引数(暗黙的またはその他)がありますか?これは、ソースコードを見ることで解決できるようです。 – Carcigenicate
React.Componentコンストラクタは1つの引数をとりますhttps://facebook.github.io/react/docs/reusable-components.html#es6-classes – Dionys