在React类组件中,我们必须绑定事件处理程序。我很好奇知道背后的原因。从google上我发现,在React组件中,this
的值为undefined
,因为在将处理程序作为回调传递后上下文丢失了。
import React, { Component } from 'react';
class App extends Component {
constructor() {
super();
this.state = {
value: 0
}
this.onClick = this.onClick.bind(this);
}
onClick(){
this.setState(function(prev,prop){
return {
value:prev.value+1
}
});
}
render(){
return(
<div>
<div>render->state={this.state.value}</div>
<button onClick={this.onClick}>Click-setState</button>
</div>
);
}
}
export default App;
在上面的代码中,
事件处理程序方法(this.onClick)如何作为回调传递?。
当此事件处理程序作为回调传递时,上下文如何丢失?。