我是一个新手,正在构建一个利用React Router在3个不同组件之间进行切换的应用程序,每个组件都利用Axios从API中获取数据。每当尝试单击导航链接时,我都试图取消API请求,以防止“无法在已卸载的组件上执行React状态更新。这是空操作,但它表明您的应用程序中存在内存泄漏。要修复,取消控制台中“ useEffect清理功能中的所有订阅和异步任务”错误。首先,我尝试通过添加利用controller.abort();的点击事件在App.js中使用AbortController。如果这样不起作用,我就直接尝试调用Axios的位置(在下面的代码沙箱示例中的DisplayFish.js中看到),但是仍然没有运气。https://codesandbox.io/s/white-voice-s8moo?file=/src/App.js感谢您的帮助!
您可以使用axios.CancelToken使用取消axios请求。
const cancelTokenSource = axios.CancelToken.source();
axios.get('/user/12345', {
cancelToken: cancelTokenSource.token
});
// Cancel request
cancelTokenSource.cancel();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句