reactjs - 使用 Babel 避免 ES6(7?) 中的 .bind

标签 reactjs ecmascript-6 babeljs ecmascript-2016

我的 JSX 中有这个:

<Options options={options} onOptionSelect={this.onOptionSelect.bind(this)} />

但是,我发誓我在将回调方法传递给子 React 组件时看到了一些不需要 .bind 的奇思妙想,对吗?

最佳答案

您可以使用arrow function结合属性初始化。

class Component extends React.Component {
  handleClick = () => {
    console.log(this.props);
  }

  render() {
    return <div onClick={this.handleClick} />
  }
}

因为箭头函数是在构造函数的作用域中声明的,并且箭头函数在其声明作用域中维护 this,所以一切都有效。这里的缺点是这些不会是原型(prototype)上的函数,它们都将随每个组件重新创建。不过,这并不是什么坏处,因为 bind 会产生同样的结果。

关于reactjs - 使用 Babel 避免 ES6(7?) 中的 .bind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34049947/

相关文章:

reactjs - 出现错误时如何更改React Quill容器的边框样式?

javascript - 根据共同共享的 id 组合两个数组上的对象

javascript - 如何使用 babel 和 webpack 设置一个 react/node 项目?

javascript - 路由实现时无法读取React中未定义的属性 'object'

javascript - React Native ,自动更新 .js 文件

javascript - 在 AngularJS 的类方法中无法访问注入(inject)的依赖项

javascript - Webpack 2.4.1 中的无效配置对象错误

javascript - 控制台日志记录 "this"返回 "null"

reactjs - 一个组件中的多个表单无法识别表单和初始值属性(redux-form v7.0.4)

mysql - babel 为何在 Sequelize 中不起作用