next.js Axios请求与模拟请求混淆:类型错误:mockAdapter,originalAdapter不是函数

tquggr8v  于 2023-02-04  发布在  iOS
关注(0)|答案(1)|浏览(217)

我在我的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中失败?

e4eetjau

e4eetjau1#

问题解决here,根据用户“teetotum”评论,这是版本所致。
使用"axios": "1.1.3"将有助于暂时解决问题。

相关问题