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
故不积跬步,无以至千里;不积小流,无以成江海。