OOP C++のような言語でのコンストラクタの概念を理解しています。しかし、REACTでコンストラクタをいつ使用するかは完全にはわかりません。JavaScriptはオブジェクト指向であることはわかりますが、わかりませんコンストラクタが実際に「構築」しているもの。
子コンポーネントをレンダリングするとき、子コンポーネントにコンストラクタが必要ですか?例えば:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
items: [],
error: null
}
}
render () {
return (
<React.Fragment>
<ChildComponent data={this.state.items}></ChildComponent>
</React.Fragment>
)
}
}
簡潔にするために、この例は短くしておきます。しかし、なぜコンストラクタが必要なのでしょうか。そして、小道具の子コンポーネントにコンストラクタが必要ですか?
ES6の知識が足りない可能性があります。
状態を初期化せず、メソッドをバインドしない場合、Reactコンポーネントのコンストラクタを実装する必要はありません。
Reactコンポーネントのコンストラクタは、それがマウントされる前に呼び出されます。React.Componentサブクラスのコンストラクタを実装する場合、他のステートメントの前にsuper(props)を呼び出す必要があります。それ以外の場合、this.propsコンストラクタで定義されないため、バグが発生する可能性があります。
通常、Reactコンストラクタでは、2つの目的でのみ使用されます。
あなたの例のリンケは、状態を初期化したり、イベントリスナー関数をバインドしたりする必要があるときに便利なコンストラクタです
<element onClick={this.handler} />
_this.handler = this.bind.handler(this);