我尝试获取数据并显示项目列表
http://jsbin.com/puwigosoro/1/edit?js,console,output
我看到了响应,但屏幕上没有任何变化,我做错了什么? 顺便说一下,如何调试状态中存在的内容? console.log(this.state)什么也没显示。
加了: 我发现了问题,但仍然没有找到解决方案,这个未知在SC.get()的回调中
SC.get('/tracks', {
q: query
// license: 'cc-by-sa'
}).then(function(tracks) {
//console.log('this.state: ' + JSON.stringify(this.state));
this.setState({search_results:tracks}); // THIS UNKNOWN HERE
});
答案 0 :(得分:0)
好的,我发现解决方案,内部这个的回调会覆盖我们的 this 所以我们只需要将它传递给其他变量:
_fetchResults(query){
var that = this; // <<<<<<<<<<< THIS LINE
SC.get('/tracks', {
q: query
// license: 'cc-by-sa'
}).then(function(search_results) {
that.setState({search_results}, function () {
console.log('callback of setState()');
});
});
}