TypeError: невозможно прочитать свойство get of undefined с useEffect и Axios - PullRequest
2 голосов
/ 07 мая 2020

Я пытаюсь получить данные внутри ловушки React. Здесь нет ничего особенного, просто текст для загрузки и его замена, когда мои данные загружаются.

Но я продолжаю нажимать свой блок catch и выводить Failed to fetch data: Cannot read property 'get' of undefined TypeError: Cannot read property 'get' of undefined на консоль.

import React, { useState, useEffect } from "react";
import { axios } from "axios";

const DataPanel = () => {
  let [isLoading, setLoading] = useState(false);
  let [data, setData] = useState();

  useEffect(() => {
    async function getData() {
      let response;
      setLoading(true);
      try {
        response = await axios.get("urltosomewhere");
        setData(response);
      } catch (e) {
        console.log(`Failed to fetch data: ${e.message}`, e);
        return;
      } finally {
        setLoading(false);
      }
    }

    getData();
  });

  return (
    <div>
      <div>{isLoading ? <span>Loading...</span> : <span>{data}</span>} </div>
    </div>
  );
};

export default DataPanel;

1 Ответ

3 голосов
/ 07 мая 2020

Вам нужно import axios from 'axios', а не import { axios } from 'axios'.

Это потому, что модуль axios по умолчанию экспортирует класс axios. Это не именованный экспорт, поэтому его нельзя импортировать с помощью метода, который вы пробовали.

...