fishedee / antd-formily-boost

Antd Ui HighPerformance And Readable Interface
MIT License
41 stars 8 forks source link

为何table设置value后会执行2次渲染? #10

Open wittech opened 2 years ago

wittech commented 2 years ago

为何table设置value后会执行2次渲染?性能不太理想啊

JSchmidt63 commented 2 years ago

maybe same problem? see: https://github.com/ant-design/ant-design/issues/33942

wittech commented 2 years ago

发现是MyTable代码中的这行导致的2次渲染: const recursiveRow = getRecursiveRow(value, tableConfig);

wittech commented 2 years ago

@JSchmidt63 一个是整个组件渲染2次,发现应该是代码里面在给value设置_expand等属性导致的,还有就是onCell渲染2次整体导致非常卡顿

wittech commented 2 years ago

@JSchmidt63 有什么好的建议,在MyTable内部执行getRecursiveRow后避免2次渲染?

wittech commented 2 years ago

@JSchmidt63 const recursiveRow = untracked(() => getRecursiveRow(value, tableConfig)); const rowSelection = untracked(() => getRowSelection(value, tableConfig)); 发现这两句会导致value改变从而触发重新渲染,我加了个untracked是否可行?会不会引发别的问题?

fishedee commented 2 years ago

@wittech 我觉得你这个方案可以,提个PR,我合并进去

wittech commented 2 years ago

好的我整理一下