请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

2回答

张轩 2022-12-15 15:15:08

同学你好

非常抱歉没有看到你的回复,系统好像没有提醒,下次可以新开一个问题,或者再回复一次,我找到了对应的解决方案。

// 要使用对应的 encode 属性,不要直接赋值为函数
paramsSerializer: {
    encode: (params) => qs.stringify(params, { arrayFormat: 'repeat' })
}

亲测有效~

参考:https://github.com/axios/axios/issues/5058

0 回复 有任何疑惑可以回复我~
张轩 2022-12-03 09:44:34

同学你好

这个应该不是我们项目的代码吧?请提供一下具体的报错信息或者是源代码,我帮你看一下。

0 回复 有任何疑惑可以回复我~
  • 提问者 software_dev #1
    就是在写api请求的时候,用了qs,主要是对ts还是挺蒙的,还不是很理解。
    
    import request from '@/utils/request'
    import qs from 'qs'
    
    export const deletDevices = (ids: string) => {
      return request({
        url: `/cwzfy-admin/sys_device`,
        method: 'DELETE',
        params: { ids: ids },
        paramsSerializer: (params: any) => {
          return qs.stringify(params, { arrayFormat: 'repeat' })
        },
      })
    }
    
    
    报错信息为:
    
    function QueryString.stringify(obj: any, options?: qs.IStringifyOptions | undefined): string
    没有与此调用匹配的重载。
      第 1 个重载(共 2 个),“(config: AxiosRequestConfig<any>): Promise<AxiosResponse<any, any>>”,出现以下错误。
        类型“(params: any) => string”与类型“ParamsSerializerOptions”不具有相同的属性。
      第 2 个重载(共 2 个),“(url: string, config?: AxiosRequestConfig<any> | undefined): Promise<AxiosResponse<any, any>>”,出现以下错误。
        类型“{ url: string; method: string; params: { ids: string; }; paramsSerializer: (params: any) => string; }”的参数不能赋给类型“string”的参数。ts(2769)
    index.d.ts(292, 3): 所需类型来自属性 "paramsSerializer",在此处的 "AxiosRequestConfig<any>" 类型上声明该属性
    回复 有任何疑惑可以回复我~ 2022-12-05 18:54:57
  • 提问者 software_dev #2
    老师,有解决办法了嘛
    回复 有任何疑惑可以回复我~ 2022-12-15 14:42:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信