alibaba/x-render

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

LOL871230823 opened this issue · 4 comments

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

  • react:17.0.2
  • form-render:2.4.2
  • table-render:
  • antd:4.18.9

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

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

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

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

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