响应多个api请求



因此,作为我的个人项目,我想跟踪所有WSB stonk。不幸的是,来自alpha优势的api让你对不同的符号提出了多个请求(如果我错了,请纠正我(。我想知道我是否可以只使用一个状态并在一个组件中映射它们,而不是为每个单独的符号设置多个状态并多次将它们通过同一组件。正如你从下面的代码中看到的,我试图将我的gmedata、amcdata、tesladata和pltrdata设置为一个名为allstockdata的变量,然后设置Stock(allstockdata(,但它失败了=(

import stockApi from "../apis/stockApi";
import cryptoApi from "../apis/cryptoApi";
const StonkList = () => {
const [cryptos, setCryptos] = useState([]);
const [stocks, setStocks] = useState([]);
const [gme, setGme] = useState([]);
const [amc, setAmc] = useState([]);
const [tesla, setTesla] = useState([]);
const [palantir, setPalantir] = useState([]);
const fetchData = async () => {
const cryptoData = await cryptoApi.get("/coins/markets/", {
params: {
vs_currency: "usd",
ids: "bitcoin, dogecoin",
},
});
const gmeData = await stockApi.get("", {
params: {
function: "TIME_SERIES_DAILY_ADJUSTED",
symbol: "GME",
apikey: "EZ8JMJUGE397BZEU",
},
});
const amcData = await stockApi.get("", {
params: {
function: "TIME_SERIES_DAILY_ADJUSTED",
symbol: "AMC",
apikey: "EZ8JMJUGE397BZEU",
},
});
const teslaData = await stockApi.get("", {
params: {
function: "TIME_SERIES_DAILY_ADJUSTED",
symbol: "TSLA",
apikey: "EZ8JMJUGE397BZEU",
},
});
const pltrData = await stockApi.get("", {
params: {
function: "TIME_SERIES_DAILY_ADJUSTED",
symbol: "GME",
apikey: "EZ8JMJUGE397BZEU",
},
});
const [gmeData, amcData, teslaData, pltrData] = allStockData;
setCryptos(cryptoData.data);
setStocks(allStockData.data);
console.log(cryptoData.data);
console.log(allStockData.data);
};
useEffect(() => {
fetchData();
}, []);
return <div></div>;
};
export default StonkList;

错误的结构,应该是:

const allStockData =  [gmeData, amcData, teslaData, pltrData];

当你做

const [gmeData, amcData, teslaData, pltrData] = allStockData;

它试图在不存在的allStockData中找到gmeData, amcData, teslaData, pltrData

你可以在这里查看这个例子,只需取消注释行,看看你会得到什么错误的

最新更新