Closed ShuangxingYang closed 3 months ago
背景: 1.我正在使用EditableProTable进行开发 2.希望可以自定义操作列的删除功能,于是使用了editable. actionRender属性 3.我的columns定义在一个单独的文件中,即每次给Table传入的columns都是同一个
问题描述: actionRender中定义的事件处理函数onClick里,使用的state不是最新的值
复现示例: https://codesandbox.io/p/sandbox/actionrenderzhong-stateyin-yong-jiu-zhi-kqtpf5
我认为的问题所在: 代码片段在packages/table/src/Table.tsx 其中actionRender的处理也在genProColumn方法中
可以看到如果上述这些deps没有变化,那actionRender中引用的state一直都会是旧值
期望: 可以在actionRender中拿到最新的state,那么就需要在上述的deps中额外加入actionRender
影响: pro-components中的demo大多数是将columns定义在了组件内部,每次都会返回一个新值,那么这个memo也每次都会执行;我在useMemo的deps里多加入一个actionRender,对性能的影响应该也是不大的(我感觉...)
以上都是我的个人分析,且对pro-components的源码缺少全局、深入的了解,如有不对还望指正,谢谢🙏🏻
⚡️ Deploying PR Preview...
或者还可以这样,使用ref包一层,跟defaultDOM保持一样的实现方式,不知道你们觉得哪样更好 https://github.com/ant-design/pro-components/pull/8549
背景: 1.我正在使用EditableProTable进行开发 2.希望可以自定义操作列的删除功能,于是使用了editable. actionRender属性 3.我的columns定义在一个单独的文件中,即每次给Table传入的columns都是同一个
问题描述: actionRender中定义的事件处理函数onClick里,使用的state不是最新的值
复现示例: https://codesandbox.io/p/sandbox/actionrenderzhong-stateyin-yong-jiu-zhi-kqtpf5
我认为的问题所在: 代码片段在packages/table/src/Table.tsx 其中actionRender的处理也在genProColumn方法中
可以看到如果上述这些deps没有变化,那actionRender中引用的state一直都会是旧值
期望: 可以在actionRender中拿到最新的state,那么就需要在上述的deps中额外加入actionRender
影响: pro-components中的demo大多数是将columns定义在了组件内部,每次都会返回一个新值,那么这个memo也每次都会执行;我在useMemo的deps里多加入一个actionRender,对性能的影响应该也是不大的(我感觉...)
以上都是我的个人分析,且对pro-components的源码缺少全局、深入的了解,如有不对还望指正,谢谢🙏🏻