首页 > 其他分享 >修复:无法对未安装的组件执行反应状态更新。

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

时间:2022-09-04 09:55:19浏览次数:92  
标签:状态 修复 更新 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
From: https://www.cnblogs.com/amboke/p/16654316.html

相关文章

  • 为lazarus编译的程序生成deb安装包
    生成deb安装包可以手工打包和程序自动打包,手工打包主要是有建相关目录和编写control文件,程序打包自动生成相关目录及control文件。以下手工打包的方法:debDEB 是Debi......
  • Ubuntu下使用apt-get命令查询并安装指定版本的软件
    执行以下命令,查询软件所有的版本号sudoapt-cachemadison<package><package>为需要安装的包名,返回结果第二列即可用的版本号执行以下命令,安装指定版本的软件sudoapt......
  • 软件包安装,更新,组包安装
         ......
  • 手把手教你安装 官方 Office 2019 家庭和学生版_利用官方渠道重新安装刚购买电脑时的
     此方法仅针对通过正式渠道购买的正版电脑(笔记本、台式机),组装机不可以。目前正版电脑均会预装永久激活的windows10系统以及office2019家庭和学生版套件,版权费用默认添加......
  • SDN实验环境安装
    结果截图参考资料linux解压指令:https://www.php.cn/linux-478082.htmllinux复制指令:https://m.php.cn/article/461538.html......
  • 数据库 - Mariadb安装配置
    数据库概述数据库--数据的仓库(集散地)--database--实现数据持久化和数据管理持久化--将数据从内存转移到能够长久保存数据存储的介质的过程数据库的分类:关系型数......
  • JDK8安装配置
    JDK8安装配置一、下载JDK官网:JavaArchiveDownloads-JavaSE8(oracle.com)二、安装JDK三、配置环境1、电脑>属性>高级设置>环境变量 2、测试环境......
  • docker安装awvs
    前提:安装了docker ➊docker中拉取下载镜像dockerpullsecfa/docker-awvs➋将docker的3443端口映射到物理机的13443端口dockerrun-it-d-p13443:3443secfa/dock......
  • linux 下安装openjdk后,jps -ml 不启作用
    [root@node1jvm]#jps-bash:jps:commandnotfound其实安装这个命令也很简单,yum安装即可。先安装jdk,我安装的jdk8yuminstalljava-1.8.0-openjdk.x86_64安装完jdk8......
  • java 简介 与 安装
    java简介与安装一、Java简介java的特性和优势简单性面向对象可移植性高性能分布式动态性多线程安全性健壮性Java的三大版本JavaSE:标......