反应卸载的组件作为分​​离保留在内存中*

问题描述

我有一个使用 Redux 的 React 应用程序。问题是在我在许多组件之间切换并转到主屏幕(这是一个简单的组件)后,Chrome 分析器显示未安装组件的所有节点都变成了 valueInput.value,例如//add is button element const add = document.querySelector(".add"); //value is input element const valueInput = document.querySelector(".value"); const arr = []; add.addEventListener("click",() => { arr.push({ text: valueInput.value }); console.log(arr); });<input type="text" placeholder="Insert text" class="value" /> <button class="add">add</button> 等。我尝试在一个全新的 React 应用程序中重现这个问题,但它的行为有所不同。它不会将卸载的组件保存在内存中。

重新创建的示例:

RelatingPropertyDeFinition
export interface TestType {
  resultType?: 'NUMBER' | 'STRING' | 'DATE' | 'ENUM' | 'AMOUNT' ;
}
const types: string[] = ['NUMBER','STRING','DATE','ENUM','AMOUNT'];

内存分析器显示切换组件后未使用的节点被删除

enter image description here

但在实际应用中,它们看起来像这样

enter image description here

持有分离节点的陷阱是什么?我知道该示例不能重复它所具有的所有功能(useEffect 等...),尽管如此,逐个分析它可能需要很多时间。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...