当在componentDidmount中使用与jquery的反应时,this.setState()不是函数

当我使用es6和jquery的ajax函数时,我得到了this.setState() is not a function错误。 我尝试使用this.componentDidmount = this.componentDidmount.bind(this);在构造函数中绑定它this.componentDidmount = this.componentDidmount.bind(this); ,但仍然没有工作。

谁能帮我? 谢谢!

这是我的代码:

 import React from 'react'; import $ from 'jquery'; class UserGist extends React.Component { constructor(props) { super(props); this.state = { userName: '', lastGistUrl: '' }; } componentDidMount() { this.serverRequest = $.get(this.props.source, function(result) { let lastGist = result[0]; this.setState({ userName: lastGist.owner.login, lastGistUrl: lastGist.html_url }); }); } componentWillUnmount() { this.serverRequest.abort(); } render() { return( 
{this.state.userName}'s last gist is here.
) } } export default UserGist;

未设置componentDidMount()内部回调函数的this上下文。

您可以使用箭头function来执行此操作,如下所示:

 this.serverRequest = $.get(this.props.source, (result) => { let lastGist = result[0]; this.setState({ userName: lastGist.owner.login, lastGistUrl: lastGist.html_url }); })