Warning: setState(...): Can only update a mounted or mounting componen

关于react中切换路由时报以上错误,实际的原因是因为在组件挂载(mounted)之后进行了异步操作,比如ajax请求或者设置了定时器等,而你在callback中进行了setState操作。当你切换路由时,组件已经被卸载(unmounted)了,此时异步操作中callback还在执行,因此setState没有得到值。

解决的方式有两种:

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

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

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

(拷贝别人的东西,留着自己用.....)

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复