我问题是,当使用axios.create
创建的带有默认参数的服务时,如果不使用该参数,则返回值是错误的,但是,如果不发送该参数,则返回值是正确的,因此我需要从某些调用中删除该参数。
我使用axios.create
创建了一个服务,该服务使用补充url进行调用,如下所示:
API.ts
export const service = axios.create({
baseURL: "API_URL",
timeout: 3000,
headers: {
Authorization: `Bearer ${SOME_ENV_TOKEN}`,
"Content-Type": "application/json;charset=utf-8",
},
params: {
keys: `${SOME_ENV_KEY}`,
},
});
在我的钩子中,该服务用于获取传递补充url的数据,如下所示:
使用获取用户.ts
const fetchUsers: IUsers = await service
.get<Promise<IUsers>>(`/users/`)
.then((response) => {
return response.data;
});
然而,在一个或两个钩子中的一些调用没有使用参数来返回正确的值,当参数被传递而不需要时,从API返回的是错误的。
我需要的是删除一些调用中的参数以获得正确的值。
我已经试过拦截器了,但是所有的API调用都删除了参数。
我试图传递一个空对象,但params的使用方式是相同的:
使用获取用户.ts
const fetchUsers: IUsers = await service
.get<Promise<IUsers>>(`/users/`, {})
.then((response) => {
return response.data;
});
我也尝试过传递一个空参数(赋值空字符串或null),但是参数被作为null发送,这会从API返回错误的值。
使用获取用户.ts
const fetchUsers: IUsers= await service
.get<Promise<IUsers>>(`/users/`, {params: {})
.then((response) => {
return response.data;
});
那么,有没有一种方法可以使用这个方法从选定钩子的axios调用中删除默认参数呢?
感谢所有能帮忙的人。
1条答案
按热度按时间0x6upsns1#
在使用有缺陷的旧版本
axios
(如0.19.0 was)之前,请求参数将与示例中的默认参数合并,而不是覆盖。而且由于
undefined
值从params
加上指定的配置将与示例配置合并。
那么
应该可以正常工作。至少我用1.2.1是这样工作的