我在我的nextjs应用中安装了axios和axios-mock-adapter,但是当在localhost:3000中运行的Axios请求尝试调用AWS Lambda请求(我知道它可以工作)时,我收到错误:
目标(获取)API错误:类型错误:mockAdapter。originalAdapter不是函数
请求位于useEffect钩子内-并在捕获错误时停止:
useEffect(() => {
const getGoals = async () => {
try {
const response = await api.get(apiUrl)
setGoals(response.data.body)
} catch (error) {
console.log('Goals (get) api error:', error)
}
}
getGoals()
})
其中API是从这里导入的:
import axios from 'axios'
export default axios.create({
baseURL: 'https://xxxxxxxxxx.execute-api.us-east-2.amazonaws.com/test'})
模拟适配器位于单独的组件中:
import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'
const mock = new MockAdapter(axios)
export default mock
我不明白(也从来没有遇到过这个问题)为什么我的真实的axios请求会和模拟请求混淆,我以前并行运行过这两个请求,我想继续使用axios-mock-adapter进行jest测试。
为什么我的API.get在useEffect中失败?
1条答案
按热度按时间e4eetjau1#
问题解决here,根据用户“teetotum”评论,这是版本所致。
使用
"axios": "1.1.3"
将有助于暂时解决问题。