首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的React组件在尝试获取api数据时出现404错误?React,Axios,Api

我的React组件在尝试获取api数据时出现404错误?React,Axios,Api
EN

Stack Overflow用户
提问于 2021-04-28 06:33:53
回答 2查看 60关注 0票数 0

当尝试呈现我的应用程序接口数据以列出应用程序接口中的所有品牌时,控制台显示404错误“GET https://v1-sneakers.p.rapidapi.com/v1/sneakers/brands 404 (Not Found)”当我在不同的组件中使用此端点时,它起作用。但我决定让它成为自己的页面。我正在使用'useEffect‘来呈现api数据。我不确定这是我设置路由的方式,还是我获取数据的方式。

Brand.js

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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;
EN

回答 2

Stack Overflow用户

发布于 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端点。

票数 0
EN

Stack Overflow用户

发布于 2021-10-05 19:52:34

你可以做什么来确保它是应用程序接口或你的代码是使用像Postman这样的工具。如果您输入了所有凭据并在那里获得了正确的响应,但不是在您的应用程序中,那么至少您知道数据来自API。

您是否尝试过将id记录到getDataId函数中,以查看该值是否通过?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67291482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档