我正在阅读Reactjs和
componentDidMount: function() {
this.serverRequest = $.get(this.props.source, function (result) {
var lastGist = result[0];
this.setState({
username: lastGist.owner.login,
lastGistUrl: lastGist.html_url
});
}.bind(this));
}
从我的理解为this.setState
绑定此项,以便在外部调用时,this
将引用正确的对象。但是为什么我们不需要this.props.source
?
答案 0 :(得分:3)
因为this.props.source
是传递给$.get
的参数 - 它仍然具有正确的上下文,因为它在componentDidMount
方法内执行。只有在$.get
方法的回调中,上下文才会丢失,这是从jQuery lib中的某个地方执行的。
保留上下文的另一种方法是使用arrow function(这是es6,所以你现在需要一个转换器),它将为你做绑定:
$.get(this.props.source, (result) => {
// ...
});