根据将 React.createClass 中的所有方法绑定(bind)到 thisthis blog post 特性是 不是 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
}

最佳答案

目前在 React 中没有激活的功能可以做到这一点。这根本不是一个选择。

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

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

关于javascript - 是否可以为 React 的类模型打开 React.js 自动绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29387121/

10-12 12:55
查看更多