未处理的拒绝:default.get不是函数

时间:2020-05-30 06:53:48

标签: javascript reactjs api get axios

我正在尝试使用以下功能在我的react组件中使用axios发出一个简单的get请求:

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 个答案:

答案 0 :(得分:1)

这是一个简单的错误=)

api.js:

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

在上面的代码中,定义API的位置应使用axios.create而不是axios.get

如果仔细看,目前,在React组件中,您基本上是在调用axios.get().get()

相关问题