我正在使用React Starter Kit创建我的第一个 React 应用程序,但我正在为 Ajax 调用而苦苦挣扎。我看到这个 Kit 嵌入了一种执行 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}
然后执行 Ajax 调用(成功),我的控制台现在显示:
Promise
__proto__:Promise
[[PromiseStatus]]:"resolved"
[[PromiseValue]]:Array[16]
期望的行为当然是更新我的视图:执行 ajax 调用时,每个数组成员显示一行。
我错过了什么?
谢谢