我使用React Starter Kit来创建我的第一个React应用程序,并且我正在用Ajax调用挣扎。我看到这个套件嵌入的方式进行Ajax调用(这是由应用路由内部使用的方式):在React入门套件中的Ajax调用
import fetch from '../../core/fetch';
我在我的组件添加这个,然后尝试执行一个Ajax调用时组件加载。这里是我的代码:
componentDidMount() {
var moduleManager = 'https://my_domain.com/my_endpoint';
async function getModules (url) {
const response = await fetch(url);
const content = await response.json();
return content;
};
this.state.modulesList = getModules(moduleManager);
console.log(this.state.modulesList);
}
我也在我的渲染功能使用的状态值:
render() {
var rows = [];
for (var i = 0; i < this.state.modulesList.length; i++) {
rows.push(
<li>{this.state.modulesList[i]}<li/>
);
}
这段代码放在一起在我的控制台登录此:
Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
然后阿贾克斯呼叫执行(成功),我的控制台现在显示此:
Promise
__proto__:Promise
[[PromiseStatus]]:"resolved"
[[PromiseValue]]:Array[16]
希望的行为当然是更新我的视图:执行ajax调用时,每个数组成员显示一行。
我错过了什么?
感谢
谢谢,setState做到了! – frinux