当尝试呈现我的应用程序接口数据以列出应用程序接口中的所有品牌时,控制台显示404错误“GET https://v1-sneakers.p.rapidapi.com/v1/sneakers/brands 404 (Not Found)”当我在不同的组件中使用此端点时,它起作用。但我决定让它成为自己的页面。我正在使用'useEffect‘来呈现api数据。我不确定这是我设置路由的方式,还是我获取数据的方式。
Brand.js
import React, {useEffect, useState} from 'react';
import api from '../api';
// import axios from "axios";
const Brand = () => {
const [brands, setBrands]= useState([]);
useEffect(() => {
const fetchData = () => {
api.getBrand().then((response)=>{
setBrands(response.data.results);
console.log(response.data.results);
});
};
fetchData();
}, [])
return (
<div className="brand-container">
{/* {brands && (
<ul className="brand_list">
{brands.map((brand)=>{
return(
<li>{brand.shoe}</li>
)
})}
</ul>
) } */}
</div>
)
}
export default Brand;
Api.js
import axios from "axios";
const API_KEY = process.env.RAPID_API_KEY
export default {
getData: () =>
axios({
method: 'GET',
url: 'https://v1-sneakers.p.rapidapi.com/v1/sneakers',
params: {limit: '24'},
headers: {
'x-rapidapi-key': 'f2326766a3msh573dd850eaeab1fp181777jsnf7f3daf5cc0a',
'x-rapidapi-host': 'v1-sneakers.p.rapidapi.com'
}
}),
getDataId: (id) =>
axios({
method: 'GET',
url: 'https://v1-sneakers.p.rapidapi.com/v1/sneakers/' + id,
headers: {
'x-rapidapi-key': 'f2326766a3msh573dd850eaeab1fp181777jsnf7f3daf5cc0a',
'x-rapidapi-host': 'v1-sneakers.p.rapidapi.com'
}
}),
getBrand: () =>
axios({
method: 'GET',
url: 'https://v1-sneakers.p.rapidapi.com/v1/brands',
headers: {
'x-rapidapi-key': 'f2326766a3msh573dd850eaeab1fp181777jsnf7f3daf5cc0a',
'x-rapidapi-host': 'v1-sneakers.p.rapidapi.com'
}
})
}
// f2326766a3msh573dd850eaeab1fp181777jsnf7f3daf5cc0a'
App.js
import React, {useEffect, useState} from 'react';
import {BrowserRouter as Router, Route, Switch, useParams} from 'react-router-dom';
import Home from './components/Home';
import SearchBar from './components/SearchBar';
import Navbar from './components/Navbar';
import SneakerId from './components/SneakerId';
import About from './components/About'
import Brand from './components/Brand'
const App = () => {
return (
<Router>
<Navbar />
<Switch>
<Route exact path="/about" component={About} />
<Route exact path="/">
<Home />
</Route>
<Route exact path="/:id">
<SneakerId />
</Route>
<Route exact path="/brands" component={Brand}/>
</Switch>
</Router>
)
}
export default App;
发布于 2021-10-05 16:11:03
我在RapidAPI集线器上检查过此接口,没有带有https://v1-sneakers.p.rapidapi.com/v1/sneakers/brands
URL的端点。相反,我认为您应该使用https://v1-sneakers.p.rapidapi.com/v1/brands
端点。
发布于 2021-10-05 19:52:34
你可以做什么来确保它是应用程序接口或你的代码是使用像Postman这样的工具。如果您输入了所有凭据并在那里获得了正确的响应,但不是在您的应用程序中,那么至少您知道数据来自API。
您是否尝试过将id记录到getDataId函数中,以查看该值是否通过?
https://stackoverflow.com/questions/67291482
复制相似问题