vue-vben-admin
vue-vben-admin copied to clipboard
可编辑行Table配置“rowKey: 'id',”刷新表格数据后会导致行编辑校验无法通过
使用可编辑行Table组件,开启搜索区域,默认打开页面的数据列表加载后可以编辑,一旦点击“查询”、“重置”或者表格的“刷新”按钮后,行编辑校验不通过(实际上校验可以通过因为可编辑的项均有数据),点击翻页按钮后行编辑功能正常(数据重新通过接口加载了)
浏览器:Microsoft Edge 版本 96.0.1054.62 (官方内部版本) (64 位)
使用的版本?
记录一个可能相同原因导致的bug:https://vvbin.cn/next/#/comp/table/editRowTable 复现:点编辑 然后直接刷新表格 编辑状态没有初始化。 之后作为一起修改考虑
@lzdjack 使用的是最新的main分支代码
@wangxiaoer5200 这个问题在官网存在,在我的工程里面没有复现
@Wang-Yumin 我没复现出来 @wangxiaoer5200 的错误倒是很明显,@Wang-Yumin 如果你能用官网的例子复现出来 就更好了
@lzdjack 我使用官网的例子复现了,与是否开启搜索区域没有关系,在useTable配置中添加rowKey: 'id',
即便不开启搜索区域使用表格刷新也会出现校验不通过的情况
赶紧你本地没复现是因为你用的是可编辑单元 而不是编辑行。猜测
感觉
@wangxiaoer5200 不是的,我使用的是编辑行Table,我找到原因了,还是因为 rowKey 的问题,加了 rowKey: 'id',
后,行编辑状态下操作列均不会置灰,所以没复现,我删除 rowKey 后,行编辑状态下其他操作列会置灰,你说的那个问题也复现了。
bug原因是因为antv在相同的key下不会再次去渲染customRender里的EditableCell组件(customRender方法里做了一系列方法), 但是onValid是追加在data数据里面,所以每次请求会把record?.validCbs方法覆盖掉导致undefind,一直为false, 目前来看要处理这个问题可能要破坏性更新,用bodyCell插槽会在key相同的情况下也能再次渲染EditableCell组件,亲测能解决这个问题
@lzdjack 这个问题近期能解决么?或者你有什么解决方案,贴出来我把我本地工程先改了试试
你可以每次都让他自己生成key,别自己声明key,也能解决这个问题
我遇到的是行编辑和rowKey同时使用会出现循环渲染的情况导致页面变得特别的卡 但是去掉rowKey我就不能实时渲染了(我把表格放在了抽屉里)
请问解决了吗
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days