根据将 React.createClass
中的所有方法绑定(bind)到 this
的 this 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/