如何理解react组件中bind的作用?

写组件时,要用到bind()绑定方法,这是为什么呢?
还有下面这段代码,为什么要将成功回调函数也bind()呢?

$.ajax({
      url: "/my-comments.json",
      dataType: 'json',
      success: function(comments) {
        this.setState({comments: comments})
      }.bind(this)
    })

谢谢各位。

阅读 3.6k
2 个回答

回调函数的上下文是是全局对象window或者undefined,所以要绑定this,不然this.setState就不存在了

回调函数被触发的时候this指向的是window对象,并不是指向这个组件。bind是为了重新将this绑定到组件上

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题