出现这种问题的愿意 就在于你在组件卸载后进行了异步操作 比如 ajax请求,设置定时器 啊 并且你还进行了setState操作,这样当你切换路由时 组件已被卸载 但是setState还在执行 所以就会出现这种问题
简单说就是:组件已经被卸载(unmounted)了,此时异步操作中callback还在执行,因此setState没有得到值。
最简单的解决办法:
async componentDidMount(){
this._isMounted=true;
const data=await user.postTxFunc({});
if(this._isMounted){
data.code===1?this.setState({imgUrl:(APIHost+data.data)}):Toast.offline(data.msg,1);
}
}
componentWillUnmount(){
this._isMounted=false;
}
都是在项目中遇到的一些问题 自己记录分享出来