为了账号安全,请及时绑定邮箱和手机立即绑定

如何在我的反应应用程序中访问 API 的属性?

如何在我的反应应用程序中访问 API 的属性?

千巷猫影 2022-01-20 20:48:17
我是 Web 开发的新手,不知道如何访问我的 API 的属性。我使用的 API 提供了足球队的信息。给出 API 的架构和链接: https ://rapidapi.com/api-sports/api/api-football?endpoint=apiendpoint_bc5e37ef-299f-4656-98a3-ed0d9fa5b1d2给定的是我的 React 应用程序的 App.js 代码。import React from "react";class App extends React.Component {  constructor() {    super();    this.state = {      teamObj:{}    };  }  componentDidMount() {    fetch("https://api-football-v1.p.rapidapi.com/v2/teams/team/33",           {"method": "GET","headers":             {"x-rapidapi-host": "api-football-v1.p.rapidapi.com",            "x-rapidapi-key": "a35b8572b7mshe694b9e8ac66df4p158c4bjsn4518b48e8965"}          }        )    .then(response => response.json())    .then(data => this.setState({teamObj : data}))  }  render() {    return (      <div>        <h1>My fav team is: {this.state.teamObj.name}</h1>      </div>    );  }}export default App;
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

import React from 'react';


class App extends React.Component {

    constructor() {

        super();

        this.state = {

            teamObj: {}

        };

    }


    componentDidMount() {

        fetch('https://api-football-v1.p.rapidapi.com/v2/teams/team/33', { method: 'GET', headers: { 'x-rapidapi-host': 'api-football-v1.p.rapidapi.com', 'x-rapidapi-key': 'a35b8572b7mshe694b9e8ac66df4p158c4bjsn4518b48e8965' } })

            .then((response) => response.json())

            .then((data) => this.setState({ teamObj: data }));

    }


    render() {

        const data = this.state.teamObj;

        if (!data) return <div>Loading...</div>;

        const teamData = data.api && data.api.teams && data.api.teams.length > 0 ? data.api.teams : [];


        return (

            <div>

                <h1>

                    My fav teams is:{' '}

                    {teamData.map((x) => {

                        return <div>{x.name}</div>;

                    })}

                </h1>

            </div>

        );

    }

}


export default App;


查看完整回答
反对 回复 2022-01-20
?
阿晨1998

TA贡献2037条经验 获得超6个赞

data是一个对象,要访问你需要使用的团队数组,data.api.teams它是团队的数组。要访问阵列中的第一个团队,请使用data.api.teams[0]


更改teamObj为团队。


state = {

  teams: []

}


componentDidMount() {

  fetch("https://api-football-v1.p.rapidapi.com/v2/teams/team/33", {

    method: "GET",

    headers: {

      "x-rapidapi-host": "api-football-v1.p.rapidapi.com",

      "x-rapidapi-key": "a35b8572b7mshe694b9e8ac66df4p158c4bjsn4518b48e8965"

    }

  })

    .then(response => response.json())

    .then(data => {

      this.setState({teams : data.api.teams })

    });

}

渲染它,团队数组将始终包含一项,因为您在请求中传递了团队的 ID。从阵列访问团队this.state.teams[0].name


<h1>My fav team is: { this.state.teams.length && this.state.teams[0].name }</h1>


查看完整回答
反对 回复 2022-01-20
?
Helenr

TA贡献1780条经验 获得超4个赞

试试这个


import React from 'react';

import logo from './logo.svg';

import './App.css';


class App extends React.Component {

  constructor() {

    super();

    this.state = {

      teamObj:null

    };

  }



  componentDidMount() {

    fetch("https://api-football-v1.p.rapidapi.com/v2/teams/team/33", 

          {"method": "GET","headers": 

            {"x-rapidapi-host": "api-football-v1.p.rapidapi.com",

            "x-rapidapi-key": "a35b8572b7mshe694b9e8ac66df4p158c4bjsn4518b48e8965"}

          }

        )

    .then(response => response.json())

    .then(data => {

      console.log(data)

      this.setState({teamObj : data.api.teams})

    })

  }


  render() {

    console.log(this.state.teamObj)

    return (

      <div>

        <h1>My fav team is: {

          this.state.teamObj && 

           this.state.teamObj[0].name 

          }</h1>

      </div>

    );

  }

}


export default App;


查看完整回答
反对 回复 2022-01-20
  • 3 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号