我有一个rect组件,在其componentDidMount方法下,我正在更新component的状态变量,并且该状态变量在render方法中用于在UI上显示。但是我的div总是空的,在控制台上我看到了错误。下面是我的组件和js文件的内容
App.js
componentDidMount () {
...
this.someInternalMethod()
}
someInternalMethod() {
someApiCall().then(result => {
this.state.divContent.setContent(result)
})
}
apiHelper.js
export function someApiCall() {
// Build the api endpoint
var url = "http://someurl";
fetch(url).then(function(response) {
if (response.status !== 200) {
return;
}
response.json().then(function(data) {
//this log is printing data after error
console.log(data);
return formattedHtmlData(data));
});
}).catch(function(err) {
console.log("Sorry data can't be loaded");
});
}
Formatter.js
export function formattedHtmlData(data) {
//do html formatting of data put inside div etc.
and return
}
无法弄清我所缺少的。任何帮助表示赞赏。
PS:已经在stackoverflow上提到了这个问题-get promise value in react component
答案 0 :(得分:1)
请确保您同时返回fetch
和response.json()
调用,否则诺言链将被破坏,并且没有诺言供您在{{ 1}}。
then