ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

修复:无法对未安装的组件执行反应状态更新。

2022-09-04 10:02:27  阅读:199  来源: 互联网

标签:状态 修复 更新 https 卸载 组件 安装 setState


修复:无法对未安装的组件执行反应状态更新。

在开发 react.js 应用程序时可能会遇到此错误:

警告:无法对未安装的组件执行 React 状态更新。

这是一个空操作,但它表明您的应用程序中存在内存泄漏。

警告很明确,您正在更新状态,但组件已卸载!

让我们更深入地研究这个问题:

在 react.js 中,你的组件可能会被重新渲染多次,这没关系。尽管如此,当组件重新渲染(卸载然后重新安装)或组件被卸载(从页面中删除)时,您可能(不是有意地)更新状态。那是您遇到此错误的时候。

让我们看一个例子:

这里我们叫 设置状态 每两秒钟,但等待;即使组件已卸载,我们也会每两秒调用一次!

快速修复此问题:

https://gist.github.com/amirrezaDev1378/0dc4a8e24b1dfcb790607167d9fd0ae8

如果组件通过检查的值挂载,我们调用 setState

已卸载 .

每当组件卸载时,我们设置 已卸载

value 为 true,并且繁荣,它不会调用 setState!

更好的方法:

我们可以创建一个辅助函数以在异步 setState 操作中使用:

https://gist.github.com/amirrezaDev1378/9334b1ca7864145a0902803e2debef21

辅助功能信用:

福特04

如果文章对你有帮助,请考虑关注我或点赞文章!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/11990/40160409

标签:状态,修复,更新,https,卸载,组件,安装,setState
来源: https://www.cnblogs.com/amboke/p/16654316.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有