【发布时间】:2021-07-21 07:02:46
【问题描述】:
当尝试渲染我的 api 数据以列出 api 中的所有品牌时,控制台显示 404 错误“GET https://v1-sneakers.p.rapidapi.com/v1/sneakers/brands 404 (Not Found)”,当我在不同的组件中使用此端点时它起作用了。但我决定让它成为自己的页面。我正在使用“useEffect”来呈现 api 数据。我不确定这是我设置路由的方式还是我获取数据的方式。
品牌.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;
【问题讨论】:
标签: reactjs api http-status-code-404 use-effect