axios.get 使用 baseUrl 使用 axios.create 方法时出错

axios.get ERROR on using axios.create method by using baseUrl

我尝试在 React 中从随机用户 API 创建一个应用程序,我使用 axios 库进行 HTTP Requests.I 使用 [=22= 为基础 API 创建了一个单独的文件] 文件代码为,

import axios from 'axios'

export default axios.create({
  baseURL: `http://jsonplaceholder.typicode.com`,
}); 

然后我在另一个文件中使用它来发出 GET 请求并将数据存储在 componentdidMount 上的 state 中,这样我就可以访问 UI 中的数据。

import React from "react";
import API from "../api";
export default class PersonList extends React.Component {
  state = {
    persons: []
  };
  componentDidMount() {
    API
      .get('/').then((data) => {
      const persons = data.data;
      this.setState({ persons });
      console.log(this.state.persons);
    });
  }
  render() {
    const { persons } = this.state;
    console.log('Stato',persons)
    return (
      <ul>
        {persons.map((person) => (
          <li key={person.id}>{person.name}</li>
        ))}
      </ul>
    );
  }
}

但是它不起作用,因为状态没有填充用户数据,所以 .map() 函数抛出错误。

您遇到此错误是因为您正在使用 URL。在您的示例中,您使用 https://jsonplaceholder.typicode.com 作为 componentDidMount 中的端点,但这不会 return 任何占位符用户数据。我相信您打算改用 https://jsonplaceholder.typicode.com/users

我这里有一个工作示例:https://codesandbox.io/s/axios-instance-ki9g6。请注意我只需要将 componentDidMount 中的 / 更改为 /users.