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)
目前 React 中没有可以激活的功能来执行此操作。这根本不是一个选择。
您可以对一个类进行后处理bind,并自动对每个函数进行后处理,但这在许多类中可能是不必要的,并且会增加每次调用的开销(因为您的代码可能会混合需要绑定的函数和一些不需要绑定的函数)。
您需要决定自动调整是否值得,或者仅使用bind事件回调上下文中的语法(JavaScript 中需要它的典型位置)是可以接受的。
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |