如何修复TypeError: Cannot read property 'axios-retry' of undefined错误
修复axios 1.2.0 + axios-retry 3.3.1中的TypeError: Cannot read property 'axios-retry' of undefined错误
问题根源
这个错误是由于axios 1.x对请求配置结构的调整,以及你使用的请求级重试配置键名与当前axios-retry版本不兼容导致的:axios 1.x会过滤请求config根节点的非标准属性,而axios-retry 3.x针对axios 1.x适配时,已将请求级配置的键名从旧版的'axios-retry'改为axiosRetry。
修复步骤
修改请求级配置的键名
将请求代码中的'axios-retry'替换为axiosRetry:const fetchCall = (url, requestInfo) => axios({ method: requestInfo.method, url, timeout: requestInfo.timeout, headers: requestInfo.headers, data: requestInfo.body, axiosRetry: { retries: 1 }, })修正初始化代码的语法错误
你的初始化代码末尾多了一个多余的逗号,可能导致解析异常,修正后:axiosRetry(axios, { retries: 0, retryDelay: count => count * 1000 })验证axios实例的正确性
如果你使用的是自定义axios实例而非全局对象,确保将实例正确传入axiosRetry:const customAxios = axios.create({ baseURL: 'https://your-api-domain.com' }); axiosRetry(customAxios, { retries: 0 });
补充说明
axios 1.x不再允许在请求config根节点直接使用非官方定义的属性,这类属性会被框架过滤,导致axios-retry的getCurrentState函数无法读取到重试配置,进而抛出Cannot read property 'axios-retry' of undefined错误。改用axiosRetry键名后,axios-retry能正确识别并读取配置。
内容的提问来源于stack exchange,提问作者akhtar zaman
相关产品推荐
相关产品推荐

