我正在尝试使用以下功能在我的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并面临相同的响应。
答案 0 :(得分:1)
这是一个简单的错误=)
api.js:
const api = axios.get({
baseURL: 'https://api.covid19api.com',
})
在上面的代码中,定义API的位置应使用axios.create
而不是axios.get
。
如果仔细看,目前,在React组件中,您基本上是在调用axios.get().get()
。