реагировать, не могу получить данные API - PullRequest
5 голосов
/ 25 сентября 2019

Я не могу получить данные API от https://randomuser.me/api/

Но когда я использую другой API, например http://dummy.restapiexample.com/api/v1/employees, он работает.

Ошибка:

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 ]

2 голосов
/ 25 сентября 2019

Проблема в том, что 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);
    });
  }
0 голосов
/ 25 сентября 2019

Пожалуйста, проверьте ваши данные 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 });
    });
  }
0 голосов
/ 25 сентября 2019

Вы должны использовать res.data.results.Он входит в объект результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...