reactjs - 为什么React中我们不需要绑定(bind)箭头函数?

标签 reactjs arrow-functions

我们都知道,我们需要在 React 中绑定(bind)函数才能使其工作。我确实知道为什么我们需要绑定(bind)它。

但我不确定为什么我们不需要绑定(bind)箭头函数。

示例: 使用箭头功能(无需绑定(bind))

handleClick = () => {
  this.setState({
    isToggleOn: !this.state.isToggleOn
  });

};

现在,使用函数(需要绑定(bind))

this.handleClick = this.handleClick.bind(this);

handleClick() {
  this.setState({
    isToggleOn: !this.state.isToggleOn
  });

};

我不是问为什么我们需要在函数中绑定(bind)。我只是想知道为什么箭头函数不需要绑定(bind)。

谢谢。

最佳答案

仅仅因为箭头函数在其上下文中没有以下内容:

  • 这个
  • 参数
  • super
  • 新目标

因此,当您在箭头函数内引用 this 时,它会将 this 视为任何其他变量,并首先在其作用域中查找其声明,但找不到它,因此它会搜索上部作用域,即this 指的是 react 组件类,这是必需的,因此我们不需要将 this 绑定(bind)到该类。

关于reactjs - 为什么React中我们不需要绑定(bind)箭头函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52979915/

相关文章:

reactjs - 如何设置 babelrc 文件以及为什么?

javascript - 有没有办法禁止我的网站使用 cookie?

javascript - React 组件作为背景图片

javascript - 如果我需要更新 2 个依赖变量,React hooks 如何只执行一次副作用函数

JavaScript 箭头函数

javascript - 箭头函数和内存泄漏

javascript - “箭头功能”和“功能”是否等效/可互换?

javascript - 为什么 import 关键字在 React 中起作用,而在普通的 npm init 项目中不起作用?

javascript - 如何使用箭头函数在更改事件上传递参数 "this"

javascript - 为什么在我使用箭头函数 onClick 时我的变量未定义?