alibaba / x-render

🚴‍♀️ 阿里 - 很易用的中后台「表单 / 表格 / 图表」解决方案
https://xrender.fun
6.91k stars 980 forks source link

form-render构建的表单,react组件销毁后,发现schema结构、表单元素、相关子节点等未主动销毁,占用内存未回收,长时间使用卡顿 #1498

Open LOL871230823 opened 4 months ago

LOL871230823 commented 4 months ago

1.依赖仓库的版本(Dependencies versions)

2.问题描述(Bug description): form-render构建的表单,在recat组件中构建使用,发现在react组件销毁后,schema的结构、表单元素、相关子节点等未主动销毁,也并未接触对其的引用,相关节点占用的内存,在组件销毁后,未被垃圾回收机制检测到已解除引用,未回收;已发现有出现内存溢出的现场,长时间使用会造成系统卡顿,甚至无响应;

image

3.出现问题的 schema demo(Reproduction schema demo)

const schema = {
  // ...
}

4.最小复现 demo(Reproduction demo)

form-render demo https://codesandbox.io/s/unruffled-flower-jl78h table-render demo https://codesandbox.io/s/sweet-euler-bdoty fr-generator demo https://codesandbox.io/s/s13sh

LOL871230823 commented 4 months ago

@lhbxs 大佬是否可以尽快回复一下

lhbxs commented 3 months ago

如果比较急的话,可以尝试提 pr

LOL871230823 commented 3 months ago

你们官方的构造器就可以重现我现在遇到的问题,选择完元素之后,内存上去了,但是删除该元素,内存占用并未释放 image

LOL871230823 commented 3 months ago

@就很奇怪,为啥schema的挂载会重复触发多次呢?不能改成单次?每次设置之前清空下历史值不行嘛? image