使用kriasoft/react-starter-kit创建Web应用程序。 它从我的api服务器获取对象,并在页面上显示它们。 应用程序在获取数据时应显示加载图标。
我的代码在获取对象后不会重新渲染组件。 它继续显示“正在加载...”,即使我想看到“数据加载!”。
import React from 'react';
import fetch from 'isomorphic-fetch'
class Search extends React.Component {
constructor(...args) {
super(...args);
this.getObjectsFromApiAsync = this.getObjectsFromApiAsync.bind(this);
this.state = {
isLoading: true,
};
}
async getObjectsFromApiAsync() {
try {
const response = await fetch('http://localhost:3030/api');
const content = await response.json();
// console.log(content)
this.setState({isLoading: false});
} catch(e) {
console.error(e);
}
}
componentWillMount() {
this.getObjectsFromApiAsync();
};
render() {
if (this.state.isLoading) {
return (
<p>Loading...</p>
);
}
return (
<p>Data loaded!!</p>
);
}
}
答案 0 :(得分:1)
通过将res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
添加到我的api服务器来解决问题。
问题不在React中。
以下是解决方案资源: https://stackoverflow.com/a/18311469/6209648