【发布时间】:2022-01-22 15:13:05
【问题描述】:
我正在做一个React.js 项目。我正在尝试从具有多个端点的API 中提取数据。我在创建一个可以一次提取所有数据而不必单独执行每个端点的函数时遇到问题。 console.log 给出了一个空数组,没有任何显示。道具“电影”是来自父母的数据,工作正常。它也来自同一 API 的另一个端点。这是代码:
import { useEffect, useState } from "react";
import styles from './MovieDetail.module.css';
const MovieDetail = ({films}) => {
const [results, setResults] = useState([]);
const fetchApis = async () => {
const peopleApiCall = await fetch('https://www.swapi.tech/api/people/');
const planetsApiCall = await fetch('https://www.swapi.tech/api/planets/');
const starshipsApiCall = await fetch('https://www.swapi.tech/api/starships/');
const vehicleApiCall = await fetch('https://www.swapi.tech/api/vehicles/');
const speciesApiCall = await fetch('https://www.swapi.tech/api/species/');
const json = await [peopleApiCall, planetsApiCall, starshipsApiCall, vehicleApiCall, speciesApiCall].json();
setResults(json.results)
}
useEffect(() => {
fetchApis();
}, [])
console.log('results of fetchApis', results)
return (
<div className={styles.card}>
<div className={styles.container}>
<h1>{films.properties.title}</h1>
<h2>{results.people.name}</h2>
<p>{results.planets.name}</p>
</div>
</div>
);
}
export default MovieDetail;
更新
我刚刚在代码中添加了 Phil 的帖子并上传到了 codesanbox
【问题讨论】:
-
无法调用 API,请求过多,HTTP 429 错误。
-
我看到了错误@kiner_shah 我正在尝试解决它。谢谢。
标签: javascript reactjs api object fetch-api