我对React非常新,我一直在为第一个React项目挣扎了好几天。ReactJS,多次获取并呈现数据
我基本上有一张卡片清单,分为两个部分:CardsList和Card。我想要做的是获取每张卡的数据。我的问题是,我几乎不知道如何为单个端点获取作品,并试图同时从多个端点获取数据似乎打败了我。
我尝试以下从博客说明取的例子,以及与此想出:
export default class CardsList extends React.Component {
constructor(props) {
super(props);
this.state = {
details: [],
attachments: []
};
}
componentDidMount() {
//API and DEFAULT_QUERY have been set here, don't mind the ellipses
var API = '...';
var DEFAULT_QUERY = this.props.data;
var apiRequest1 = fetch(API + DEFAULT_QUERY, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
credentials: 'include',
}).then(response => response.json());
var apiRequest2 = fetch(API + DEFAULT_QUERY + '_attachment', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
credentials: 'include',
}).then(response => response.json());
var combinedData = {"apiRequest1":{},"apiRequest2":{}};
Promise.all([apiRequest1, apiRequest2]).then(values => {
combinedData["apiRequest1"] = values[0];
combinedData["apiRequest2"] = values[1];
return combinedData;
});
}
render() {
const { combinedData } = this.state;
let list = [];
for(var item of combinedData["apiRequest2"]) {
list.push(
<Card data={item} key={list.length}/>
);
}
return (
<div className="container">
<div className="row">
{list}
</div>
</div>
);
}}
正如我试图喂卡组件只从第二数据提取的第一尝试。控制台显示:“Uncaught TypeError:无法读取未定义的属性”apiRequest2“。
我试图从各地学习一点点,但我可能会让事情更混乱。我做错了什么,我该怎么做呢?道歉,如果我可能看起来很混乱。
编辑:在第一次获取我试图获得该卡的标题,作者和日期,并在第二次获取我试图获取该卡的预览图像。
第一个读取是这样的: 数据:[{标题: “测试”,身体: “测试”,作者: “1”,ID: “1”,...},...
和第二取: 数据:[{IMAGE_URL: “abc.png”,ID: “1”,...},...
您是否在第一次请求中获得卡片列表,然后获取第二张卡片上的详细信息?你能告诉我们更多关于你想要获取什么的信息以及可能的答案的例子吗? – bennygenel
编辑该帖子。 – JaneEyre