react报错:Can't perform a React state update on an unmounted component

在React开发中,我们可能经常会遇到这个一个警告:

 报错的意思就是:我们不能在组件销毁后设置state,防止出现内存泄漏的情况

关于react中切换路由时报以上错误,实际的原因是因为在组件挂载(mounted)之后进行了异步操作,

比如ajax请求或者设置了定时器等,而你在callback中进行了setState操作。当你切换路由时,组件已经被卸载(unmounted)了,

此时异步操作中callback还在执行,因此setState没有得到值。

解决的方式有两种:

一、在卸载的时候对所有的操作进行清除(例如:abort你的ajax请求或者清除定时器)

 二、设置一个flag,当unmount的时候重置这个flag

 三、最简单的方式(万金油)

 

 

本文参考链接:https://blog.csdn.net/u010565037/article/details/88716681

posted @ 2021-04-16 10:22  棠樾  阅读(3165)  评论(0编辑  收藏  举报