如何使用URL从API中获取特定数据

问题描述 投票:0回答:2

这可能是一个简单的解决方法,但是我看不到解决方案。我已经花了很多时间的项目终于开始关闭,但是我快要结束了,正在使用的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;
javascript reactjs api fetch
2个回答
0
投票

Opendota不提供用于通过ID检索HeroStat的API。但是您只能获取一次HeroStats。将它们存储到您的商店中(如果您使用的是Redux)。使用filter中的find获取带有您的ID的确切heroStat。此外,您可以使用reselect创建记忆选择器。


0
投票

作为API文档,我们可以看到它将提供一个对象数组。

© www.soinside.com 2019 - 2024. All rights reserved.