为什么我们需要在React的类组件中绑定事件处理程序

时间:2019-05-03 13:15:36

标签: javascript reactjs

在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;

在上面的代码中,

  1. 事件处理程序方法(this.onClick)如何作为回调传递?。

  2. 当此事件处理程序作为回调传递时,上下文如何丢失?。

0 个答案:

没有答案