Необработанное отклонение: default.get не является функцией - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь сделать простой запрос на получение, используя ax ios в моем компоненте реакции, используя следующую функцию:

import React from 'react';
import api from '../../assets/API';
import {useEffect, useState} from 'react';

export default function Chart() {
    const [apiData, setDataApi] = useState({ elements: [] });

    useEffect(() => {
    const fetchData = async () => {
        const result = await api.get('/countries');
        setDataApi(result.data);
    };
    fetchData();
    }, []);

    console.log(apiData);

    return(
        <h1>.</h1>
    )
}

API. js выглядит так:

import axios from 'axios';


const api = axios.get({
    baseURL: 'https://api.covid19api.com',
})

export default api;

Я столкнулся со следующими ошибками:

Uncaught (in promise) TypeError: _assets_API__WEBPACK_IMPORTED_MODULE_1__.default.get is not a function
    at fetchData (Chart.js:10)
    at Chart.js:13
    at commitHookEffectListMount (react-dom.development.js:19731)
    at commitPassiveHookEffects (react-dom.development.js:19769)
    at HTMLUnknownElement.callCallback (react-dom.development.js:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
    at invokeGuardedCallback (react-dom.development.js:292)
    at flushPassiveEffectsImpl (react-dom.development.js:22853)
    at unstable_runWithPriority (scheduler.development.js:653)
    at runWithPriority$1 (react-dom.development.js:11039)
    at flushPassiveEffects (react-dom.development.js:22820)
    at react-dom.development.js:22699
    at workLoop (scheduler.development.js:597)
    at flushWork (scheduler.development.js:552)
    at MessagePort.performWorkUntilDeadline (scheduler.development.js:164)

Я попытался очистить кеш и использовал yarn install , чтобы убедиться, что у меня есть все в проекте, но не сработало. Я также получаю пустой массив в console.log (apiData) , но я боюсь, что это связано с ошибкой, поскольку я пробовал использовать другие API и получил такой же ответ.

1 Ответ

1 голос
/ 30 мая 2020

Это простая ошибка =)

api. js:

const api = axios.get({
    baseURL: 'https://api.covid19api.com',
})

В приведенном выше коде, где вы определяете свой API, вы должны использовать axios.create вместо axios.get.

На данный момент, если вы внимательно посмотрите, в вашем компоненте React вы в основном вызываете axios.get().get(), что не имеет смысла.

...