В реагирующий топор ios мой объект выходит за пределы массива? - PullRequest
0 голосов
/ 27 февраля 2020

Итак, я сделал запрос API, используя axios с реакцией, и попытался сохранить json в массиве в состоянии. Но когда регистрируется состояние, он дает мне 2 выхода: один был пустой массив, а другой был объект, который был возвращен. Не знаю, что происходит. Перепробовал все, что смог.

import React from "react";
import axios from "axios";

import { withRouter } from "react-router-dom";

class CustomerPage extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      customerData: []
    };
  }

  componentDidMount() {
    const {
      match: { params }
    } = this.props;
    axios
      .get(`http://localhost:5001/api/customer/data/${params.number}`)
      .then(res => {
        // console.log(res.data)
        const customerData = res.data;
        this.setState({
          customerData: customerData
        });
      })
      .catch(error => {
        console.log(error);
      });
  }

  render() {
    const { customerData } = this.state;



    console.log(customerData) //this returns the empty state array and the
                             //object from axios

    return (
      <div>
        Your Info
        {customerData.map(customer => (
          <li key={customer._id}>{customer}</li>
        ))}
      </div>
    );
  }
}

export default withRouter(CustomerPage);

Он дал мне вывод:

Ошибка типа: customerData.map не является функцией

...