Javascript 我的第一个api请求总是在页面加载后失败
我的API请求有问题,页面加载后总是失败。我真的不知道我错在哪里 这是我的请求,当我与handleOpen函数交互时调用它Javascript 我的第一个api请求总是在页面加载后失败,javascript,reactjs,api,axios,react-hooks,Javascript,Reactjs,Api,Axios,React Hooks,我的API请求有问题,页面加载后总是失败。我真的不知道我错在哪里 这是我的请求,当我与handleOpen函数交互时调用它 const stock = { method: 'GET', url: 'https://morningstar1.p.rapidapi.com/live-stocks/GetRawRealtimeFigures', params: {Mic: props.mic, Ticker: clickedElement.ticker}, head
const stock = {
method: 'GET',
url: 'https://morningstar1.p.rapidapi.com/live-stocks/GetRawRealtimeFigures',
params: {Mic: props.mic, Ticker: clickedElement.ticker},
headers: {
'x-rapidapi-key': 'XXX',
'x-rapidapi-host': 'morningstar1.p.rapidapi.com'
}
}
const getStock = async () => {
try {
const res = await axios.request(stock);
return res.data;
}
catch (error) {
setOpen(false);
console.error("catch api error: ", error);
}
}
const handleOpen = name => {
let findClickedStock = props.stocksArray.find(item => item.ticker === name)
setClickedElement(findClickedStock)
getStock().then((dataFromStockApi) => {
let combined1 = { ...dataFromStockApi, ...findClickedStock }
setStockObject(combined1);
});
setOpen(true);
};
错误:
这是因为您的Ticker参数为空 创建“股票”时,
单击元素。未定义股票代码
这样做:
// pass name in as a parameter
getStock(name).then(...)
使getStock如下所示:
const getStock = async (ticker) => {
try {
const res = await axios.request({
method: 'GET',
url: 'https://morningstar1.p.rapidapi.com/live-stocks/GetRawRealtimeFigures',
params: {Mic: props.mic, Ticker: ticker},
headers: {
'x-rapidapi-key': 'XXX',
'x-rapidapi-host': 'morningstar1.p.rapidapi.com'
}
});
return res.data;
}
catch (error) {
setOpen(false);
console.error("catch api error: ", error);
}
}
404
表示没有这样的url。确保你的url是正确的。你可以使用一些软件来帮助(如邮递员)。它使请求检查更快。另外,请注意错误消息显示的内容。可能与SearchBar.js
第100行有关它与react或axios无关。。。您的api端点有问题。。。首先在postman中测试您的端点