是否可以为 React 的类模型打开 React.js 自动绑定

ivs*_*tas 5 javascript ecmascript-6 reactjs

根据这篇博客文章,将所有方法绑定React.createClass到 to 的this功能不是内置在 React 的类模型中。

是否可以默认开启

我知道可以使用this.someMethod = this.ticksomeMethod.bind(this);技巧来手动执行此操作,但是是否可以对所有方法都执行此操作?还是我被迫bind为所有方法编写代码?

我现在拥有的代码示例:

import MessageStore from '../stores/MessageStore.js';

export default class Feed extends React.Component {
   constructor() {
      this.state = {messages: MessageStore.getAll()}
      //can I avoid writing this for every single method?
      this._onChange = this._onChange.bind(this); 
   }

   _onChange() {
       this.setState({messages: MessageStore.getAll()});
   };

   // componentDidMount, componentWillUnmount and render methods ommited
}
Run Code Online (Sandbox Code Playgroud)

Wir*_*rie 2

目前 React 中没有可以激活的功能来执行此操作。这根本不是一个选择。

您可以对一个类进行后处理bind,并自动对每个函数进行后处理,但这在许多类中可能是不必要的,并且会增加每次调用的开销(因为您的代码可能会混合需要绑定的函数和一些不需要绑定的函数)。

您需要决定自动调整是否值得,或者仅使用bind事件回调上下文中的语法(JavaScript 中需要它的典型位置)是可以接受的。