reactjs axios无法获取api数据

时间:2019-09-25 06:38:00

标签: javascript reactjs axios

我无法从https://randomuser.me/api/获取api数据

但是当我使用http://dummy.restapiexample.com/api/v1/employees之类的其他api时,它可以工作。

错误:

enter image description here

import React from "react";
import "./App.css";
import Start from "./start";

function App() {
  return (
    <div className="App">
      <Start />
    </div>
  );
}

export default App;

start.js

import React, { Component } from "react";
import Axios from "axios";

class Start extends Component {
  constructor(props) {
    super(props);

    this.state = {
      results: []
    };
  }

  componentDidMount() {
    Axios.get("https://randomuser.me/api/").then(res => {
      const results = res.data;
      this.setState({ results });
      console.log(results);
    });
  }

  render() {
    return (
      <div>
        {this.state.results.map(result => {
          return <div>{result.id}</div>;
        })}
      </div>
    );
  }
}
export default Start;

3 个答案:

答案 0 :(得分:2)

问题是http://dummy.restapiexample.com/api/v1/employees返回数组,而https://randomuser.me/api/返回对象。尝试更改为

componentDidMount() {
    Axios.get("https://randomuser.me/api/").then(res => {
      const results = res.data.results;
      this.setState({ results });
      console.log(results);
    });
  }

答案 1 :(得分:0)

您必须使用res.data.results。它进入结果对象。

答案 2 :(得分:0)

请检查您的JSON数据 您错过了http://dummy.restapiexample.com/api/v1/employees

中的“}]”拼写错误的最后一行
componentDidMount() {
    Axios.get("http://dummy.restapiexample.com/api/v1/employees").then(res => {
      const results = res.data;
      this.setState({ results: results });
    });
  }