使用onClick或onChange函数来解决这个问题

时间:2017-11-08 06:26:16

标签: reactjs

我在反应组件中调用一个函数

<button onClick={this.createComment}>Submit Comment</button>

在我的createComment函数&#39; this&#39;因某种原因未定义

createComment(event) {
    console.log('inside createComment')
    console.log('event', event)
    console.log('this', this)

    event.preventDefault()
  }

我需要在createComment函数中调用this.setState。 如何让this成为组件的这个?

1 个答案:

答案 0 :(得分:1)

改变这个:

onClick={this.createComment}

onClick={(e) => this.createComment(e)}

OR

onClick={this.createComment.bind(this)}

注意:

  

正如@rafahoro所评论的那样:

     

你应该更喜欢绑定&#34;这个&#34;在构造函数上:

constructor() { 
     this.createComment = this.createComment.bind(this); 
} 
     

使用"onClick={(e) => this.createComment(e)}"或类似的,将会   在每个render()电话上创建一个新功能。