0.chunk.js:449884 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
原因:settimeout未运行完,对setstate的属性值没有起作用导致的。
componentDidMount() {
let _this =this;
let time = 10;
let timeFun=setInterval(()=>{
_this.setState({
time:time--
})
// console.log("倒计时",this.state.time);
if(this.state.time<=0){
// console.log("清除定时器")
_this.setState({
conStudyShow:false,
})
clearInterval(timeFun)
}
},1000);
console.log("结束");
}
解决方法:
componentWillUnmount() {
this.setState = ()=>false;
}

本文探讨了React中组件卸载时可能出现的内存泄漏问题,特别是setTimeout未正确取消导致的setstate操作无效。通过修改componentWillUnmount方法,确保setState变为noop,避免内存泄漏。

被折叠的 条评论
为什么被折叠?



