这可能是一个简单的解决方法,但是我看不到解决方案。我已经花了很多时间的项目终于开始关闭,但是我快要结束了,正在使用的API出现了问题。
我希望每当我在HeroDetail中使用我的比赛时,只要您单击它,我都将能够使用该ID来查找想要显示的英雄的谁的数据。我的其他组件完全按照我认为的方式工作。他们将我路由到我的HeroDetail页面,该页面具有一个特定于我单击的英雄的ID。
我遇到的问题是,使用此API,我不知道如何使用该ID来提取该特定ID的heroStats。
我以为我可能可以在URL的末尾添加一些参数,例如?_ id = $ {},但这没有成功。如果您还想阅读一点,API URL为https://docs.opendota.com/#section/Introduction。我还找不到任何可以帮助我的东西。
import React, {useState, useEffect} from "react";
import "./App.css";
function HeroDetail({match}) {
useEffect(() => {
fetchHero();
console.log(match)
},[]);
const [item, setItem] = useState([]);
const fetchHero = async () => {
const fetchHero = await fetch(`https://api.opendota.com/api/heroStats}`);
const item = await fetchHero.json();
setItem(item);
console.log(item)
};
return(
<div>
<h1>{item.id} </h1>
</div>
);
}
export default HeroDetail;
Opendota不提供用于通过ID检索HeroStat的API。但是您只能获取一次HeroStats。将它们存储到您的商店中(如果您使用的是Redux)。使用filter
中的find
获取带有您的ID的确切heroStat。此外,您可以使用reselect创建记忆选择器。
作为API文档,我们可以看到它将提供一个对象数组。