componentDidMount() {
$.ajax({
type: "GET",
url: "/tweets",
dataType: "json",
success: function (data){
//$('#tweetsList').append(data);
this.setState({tweetsList: data});
},
error: function (error) {
console.log(error);
}
});
}
上面的代码块给我一个this.setState函数找不到错误。我试图将我的推文控制器中的json渲染到我的main.jsx文件中。
答案 0 :(得分:1)
ajax调用中this
更改的上下文。 this
不再引用您的组件。您需要参考原始上下文。
componentDidMount() {
const self = this;
$.ajax({
type: "GET",
url: "/tweets",
dataType: "json",
success: function (data){
//$('#tweetsList').append(data);
self.setState({tweetsList: data});
},
error: function (error) {
console.log(error);
}
});
}
答案 1 :(得分:0)
问题是this
您的成功回调函数是指该函数,因此没有任何setState
方法。您可以将上下文传递给jQuery ajax调用,如下所示:
$.ajax({
type: "GET",
url: "/tweets",
dataType: "json",
context: this,
success: function (data){
//$('#tweetsList').append(data);
this.setState({tweetsList: data});
},
error: function (error) {
console.log(error);
}
});
有关详细信息,请参阅jQuery ajax docs有关上下文属性的内容。