出什么事啦? 我的问题是,当使用不使用参数的默认参数使用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传递的数据,如下所示:

useFetchUsers.ts个个个

const fetchUsers: IUsers = await service
      .get<Promise<IUsers>>(`/users/`)
      .then((response) => {
        return response.data;
      });

然而,一个或两个钩子中的一些调用没有使用参数返回正确的值,当参数被传递并且不需要时,从API返回是错误的.

我需要的是删除某些调用中的参数以获得正确的值.

我已经try 了拦截器,但参数已从所有API调用中删除.

我试图传递一个空对象,但参数的使用方式相同:

useFetchUsers.ts个个个

const fetchUsers: IUsers = await service
      .get<Promise<IUsers>>(`/users/`, {})
      .then((response) => {
        return response.data;
      });

我还试图传递一个空的参数(赋值为空字符串或NULL),但参数被作为NULL发送,这会从API返回错误的值.

useFetchUsers.ts个个个

const fetchUsers: IUsers= await service
      .get<Promise<IUsers>>(`/users/`, {params: {})
      .then((response) => {
        return response.data;
      });

那么,有没有办法使用这种方法从所选钩子中的axios调用中删除默认参数呢?

感谢任何能帮忙的人.

推荐答案

在你使用老版本的axios(如0.19.0 was)之前,请求的参数将与实例中的默认参数合并,而不是覆盖.

而且由于从params+中删除了undefined个值

指定的配置将与实例配置合并.

然后

const fetchUsers: IUsers= await service
  .get<Promise<IUsers>>(`/users/`, { params: { keys: undefined } })
  .然后((response) => {
    return response.data;
  });

应该可以很好地工作.至少在我的1.2.1版本中是这样的

Reactjs相关问答推荐

如何使用json将购物车数组传递到后台API

父组件更新后不重新呈现子组件

客户端组件中服务器组件的两难境地

为什么我的标签在Redux API中不能正常工作?

UseEffect和useSelector的奇怪问题导致无限循环

导致useState中断的中断模式

在React Create App TS项目中安装material UI

如何使ionic 面包屑在州政府条件下可点击?

如何在不同的路由中渲染相同的页面组件(包括 getServerSideProps)

如何在 React Hook Form 中使用嵌套对象处理错误验证消息

ReactJS 中的图像加载顺序

无法使axiosmockadapter正常工作

如何根据用户在react.js中的 Select , Select 多个心形图标?

React 组件列表中的第一个计时器正在获取值 NaN

当每个元素都可拖动时,移动设备上的滚动列表出现问题

使用dayjs时如何在输入类型日期时间本地字段中设置默认值?

如何在react 中更新子组件中的变量?

谁能根据经验提供有关 useEffect 挂钩的更多信息

如果 URL 已随功能组件更改,则取消刷新

找不到元素 - 这是参考问题吗?