【问题标题】:What is the purpose of doing (bind(this)) while handling the events in React .jst?在 React .jst 中处理事件时做 (bind(this)) 的目的是什么?
【发布时间】:2017-06-30 05:22:18
【问题描述】:
(在 React 编码中)每当我点击屏幕时,我都想使用 OnClick 事件来计算一些东西。为此,我从互联网上获得了如下示例代码,
<div className="sample" onClick={this.handleClick.bind(this)}>
handleClick 方法和<div> 位于同一方法中。谁能解释为什么这里需要绑定,为什么我们不应该直接调用handleClick() 方法而不绑定?
【问题讨论】:
标签:
jquery
reactjs
react-native
dom-events
【解决方案1】:
“this”关键字指的是当前组件(比如组件 A)在 react 中的上下文。基本上在 java-script 中它是指当前的类或函数,但对于 react 它是指当前的组件。
如果你没有用你的handleClick方法发送这个,那么每当你调用handleClick方法时,handleClick永远不会知道组件A的东西(比如变量或函数)。
【解决方案2】:
在 JavaScript 中有一种叫做上下文的东西。它包括使用 this 关键字在当前范围内找到的内容。因此,通过使用绑定,您将调用 handleClick 的上下文传递给函数 handleClick,以便该函数可以使用绑定上下文中的 this.values。
More info here.