Javascript 使用Axios/Mobx在React.js应用程序中执行无休止的Http 404错误响应循环
我正在开发一个React.js应用程序,使用Axios进行HTTP处理,使用MobX进行状态管理。我收到了这个错误,我发送了一个测试无效的HTTP响应,这将导致404错误。但我得到的是一个404错误的循环不断重复,下面是控制台的外观: 下面是产生此错误的方法。我创建了一个“调试模式”版本: 首先,该方法在未能从本地数组获取“活动”后命中try块。等待API的“活动”的第一行抛出Http 404错误,发送到控制台中“Errored->error block”登录的catch块 它应该到此结束,但是在“Errored->error block”日志之后,由于未知的原因,它会打印“Step 1:get activity from local activityRegistry”,这意味着整个方法将从头开始运行。然后它继续重复自己 以下是与API通信的Axios代码,但我找不到任何可能导致此行为的原因:Javascript 使用Axios/Mobx在React.js应用程序中执行无休止的Http 404错误响应循环,javascript,reactjs,http,axios,mobx,Javascript,Reactjs,Http,Axios,Mobx,我正在开发一个React.js应用程序,使用Axios进行HTTP处理,使用MobX进行状态管理。我收到了这个错误,我发送了一个测试无效的HTTP响应,这将导致404错误。但我得到的是一个404错误的循环不断重复,下面是控制台的外观: 下面是产生此错误的方法。我创建了一个“调试模式”版本: 首先,该方法在未能从本地数组获取“活动”后命中try块。等待API的“活动”的第一行抛出Http 404错误,发送到控制台中“Errored->error block”登录的catch块 它应该到此结束,但
axios.defaults.baseURL = 'https://localhost:5001/api';
const responseBody = (response: AxiosResponse) => response.data;
const sleep = (ms: number) => (response: AxiosResponse) =>
new Promise<AxiosResponse>(resolve => setTimeout(() => resolve(response), ms));
const requests = {
get: (url: string) => axios.get(url).then(responseBody),
}
const Activities = {
list: ():Promise<IActivity[]> => requests.get('/activities'),
details: (id: string) => requests.get(`/activities/${id}`),
}
axios.defaults.baseURL='1〕https://localhost:5001/api';
const responseBody=(response:AxiosResponse)=>response.data;
const sleep=(ms:number)=>(响应:AxiosResponse)=>
新承诺(resolve=>setTimeout(()=>resolve(response),ms));
常量请求={
get:(url:string)=>axios.get(url).then(responseBody),
}
常数活动={
列表:():Promise=>requests.get('/activities'),
详细信息:(id:string)=>requests.get(`/activities/${id}`),
}
我不知道为什么会发生这种循环,如果有人能透露一些信息,我将非常感激。我很乐意提供任何其他详细信息。从哪里调用
loadActivityDos
?您是否有反应
来调用它,或者您是否使用useffect
也许你有无休止的反应
循环,它对你改变的某个标志作出反应
或者,
useffect
最后没有deps
数组,在每次渲染时都会调用它。从哪里调用loadActivityDos
?您是否有反应
来调用它,或者您是否使用useffect
也许你有无休止的反应
循环,它对你改变的某个标志作出反应
或者,useffect
最后可能没有deps
数组,并在每次渲染时调用
axios.defaults.baseURL = 'https://localhost:5001/api';
const responseBody = (response: AxiosResponse) => response.data;
const sleep = (ms: number) => (response: AxiosResponse) =>
new Promise<AxiosResponse>(resolve => setTimeout(() => resolve(response), ms));
const requests = {
get: (url: string) => axios.get(url).then(responseBody),
}
const Activities = {
list: ():Promise<IActivity[]> => requests.get('/activities'),
details: (id: string) => requests.get(`/activities/${id}`),
}