<React>组件销毁后异步队列执行setState导致的内存泄漏


在组件销毁的时候,任务队列里面还有在触发setState的操作,会出现可能内存泄漏的问题。比如常见场景:在B页面详情页发起请求获取数据修改state的值,但是还没等到数据取回来用户又执行了返回A页面的操作,但是请求还在继续,里面的代码还会执行。


真实场景(下图):

在一个详情页,点击一个暂未开放的功能会弹出一个Toast,3秒后会消失,但是还没等到消失就返回上一页了,详情页的组件已经销毁了,但是详情页的setState过3秒后还会执行,然后就弹出上面的警告。

解决办法:

出现的原因是因为组件已经卸载了,可是异步的请求或者异步的操作还在执行。可以在组件销毁前把异步的操作取消。反正有好几种解决方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容