TypeError:axios.get 不是函数?
Posted
技术标签:
【中文标题】TypeError:axios.get 不是函数?【英文标题】:TypeError: axios.get is not a function? 【发布时间】:2019-02-23 02:08:20 【问题描述】:不知道为什么会出现以下错误:
TypeError: axios.get is not a function
4 |
5 | export const getTotalPayout = async (userId: string) =>
> 6 | const response = await axios.get(`$endpointget-total-payout`, params: userId );
7 | return response.data;
8 | ;
9 |
我的服务:
import * as axios from 'axios';
const endpoint = '/api/pool/';
export const getTotalPayout = async (userId: string) =>
const response = await axios.get(`$endpointget-total-payout`, params: userId );
return response.data;
;
我的笑话测试:
// import mockAxios from 'axios';
import getTotalPayout from './LiquidityPool';
const userId = 'foo';
describe('Pool API', () =>
it('getTotalPayout is called and returns the total_payout for the user', async () =>
// mockAxios.get.mockImplementationOnce(() =>
// Promise.resolve(
// data:
// total_payout: 100.21,
// ,
// );
// );
const response = await getTotalPayout(userId);
console.log('response', response);
);
);
在 src/__mocks__/axios.js 我有这个:
// tslint:disable-next-line:no-empty
const mockNoop = () => new Promise(() => );
export default
get: jest.fn(() => Promise.resolve( data: total_payout: 100.21 )),
default: mockNoop,
post: mockNoop,
put: mockNoop,
delete: mockNoop,
patch: mockNoop
;
【问题讨论】:
【参考方案1】:请看:MDN
正如那里所说,您需要一个值来收集default export
,其余的为X
。在这种情况下,您可以:
import axios, * as others from 'axios';
X 在这里是others
。
代替
import * as axios from 'axios';
假设:... from 'axios'
指的是你的笑话。
【讨论】:
【参考方案2】:你有import * as axios from 'axios';
。在这种情况下,axios
不是默认导出。你的模拟假设是这样的:
export default
get: jest.fn(() => Promise.resolve( data: total_payout: 100.21 )),
default: mockNoop,
post: mockNoop,
put: mockNoop,
delete: mockNoop,
patch: mockNoop
;
修复
删除默认导出并替换您的模拟结构以映射您正在使用的 axios 的导出结构。
【讨论】:
您能否再解释一下,而不是默认导出,只导出
对象?还是命名出口?我还以为我使用的是 axios 的结构,只有get
重要。【参考方案3】:
使用 import as import Axios from "axios";而不是从“axios”导入Axios;
【讨论】:
以上是关于TypeError:axios.get 不是函数?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.7 - 如何使用 axios.get 从 API 检索数据?
VUE - 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法