ant-design / pro-components

🏆 Use Ant Design like a Pro!
https://pro-components.antdigital.dev
MIT License
4.02k stars 1.28k forks source link

🐛[BUG] ProTable columnsState 设置 persistenceType 后初次加载会触发 onChange #8260

Open rpyoyo opened 1 month ago

rpyoyo commented 1 month ago

🐛 bug 描述

1、ProTable组件columnsState 设置 persistenceType 后初次加载会触发 onChange,不设置persistenceType时初次加载不会触发 onChange 事件 2、当设置value通过受控方式设置列状态时,初次加载触发onChange事件,如果storage里还没有缓存persistenceKey对应的内容,onChange回调获得的值非value设置的值,而是所有列字段 { "show": true },随后storage里缓存的列状态对象设置成value对应的值

📷 复现步骤

1、设置columnsState的persistenceType、persistenceKey、value、onChange(console.log打印获得的列状态value) 2、清空persistenceType对应的storage 3、加载组件

🏞 期望结果

在设置persistenceKey、persistenceType、value前提下 1、初次加载时,并未通过界面操作改变列状态,不希望触发onChange事件 2、可以接受加载时触发onChange事件,但希望获得的值是value对应的值,而不是所有列字段 { "show": true }

onChange中会对列状态的改变进行一些校验,例如限制显示列的数量,上述问题会导致由于第一次加载时所有列字段 { "show": true },触发了校验

💻 复现代码

复现地址:https://codesandbox.io/p/sandbox/shu-xing-zhan-shi-forked-y9kk9r?file=%2FApp.tsx

© 版本信息

🚑 其他信息

image image