1
当使用es5时,是不需要用.bind()的。
当使用es5 时,React会自动帮助我们给每一个function绑定一个this,所以我们不再需要手动绑定。
1 | var HelloWorld = React.createClass({ |
2
当使用es6时,es6不会再自动的帮助我们绑定函数,这时我们就需要使用.bind(this).1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17class HelloWorld extends React.Component {
constructor(props) {
super(props);
this.state = { message: 'Hi' };
}
logMessage() {
// This works because of the bind in render below.
console.log(this.state.message);
}
render() {
return (
<input type="button" value="Log" onClick={this.logMessage.bind(this)} />
);
}
}
3
在es6中,我们也可以使用箭头函数来避免使用.bind(this)
1 | class HelloWorld extends React.Component { |
同样,我们也可以在logMessage的实现中使用箭头函数。
1 | class HelloWorld extends React.Component { |
本文来着简书
原文链接
扫描二维码,分享此文章