なぜthis.click = this.click.bind(this)
が必要なのか、何をしているのか分かりません。「これ」を反応成分法に結合する方法
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
name: 'Initial State'
};
this.click = this.click.bind(this);
}
click() {
this.setState({
name: 'React Rocks!'
});
}
render() {
return (
<div>
<button onClick = {this.click}>Click Me</button>
<h1>{this.state.name}</h1>
</div>
);
}
};
私はちょうどes6の矢印関数について何か指摘したいと思います...あなたは 'render()'メソッドの中で人々が 'onClick = {()=> {_function_body_}}'宣言している例をたくさん見るでしょう。すべてのレンダー呼び出しで関数を再定義することでパフォーマンスが低下するため、この作業を行わないでください。これは@jeredがちょうどbtwを示唆しているものではありません。 –
コード内のClick()関数が "this"を使用していなかった場合、バインドは必要ありません。 – Sid24
@ Sid24それは正しいです。たとえば、関数が引数をとり、結果を返し、コンポーネントの状態、小道具、関数にアクセスする必要がない場合は、バインドする必要はありません。 – jered