vue-vben-admin icon indicating copy to clipboard operation
vue-vben-admin copied to clipboard

可编辑行Table配置“rowKey: 'id',”刷新表格数据后会导致行编辑校验无法通过

Open Wang-Yumin opened this issue 3 years ago • 15 comments

使用可编辑行Table组件,开启搜索区域,默认打开页面的数据列表加载后可以编辑,一旦点击“查询”、“重置”或者表格的“刷新”按钮后,行编辑校验不通过(实际上校验可以通过因为可编辑的项均有数据),点击翻页按钮后行编辑功能正常(数据重新通过接口加载了) 浏览器:Microsoft Edge 版本 96.0.1054.62 (官方内部版本) (64 位) image

Wang-Yumin avatar Jan 04 '22 03:01 Wang-Yumin

使用的版本?

lzdjack avatar Jan 04 '22 11:01 lzdjack

记录一个可能相同原因导致的bug:https://vvbin.cn/next/#/comp/table/editRowTable 复现:点编辑 然后直接刷新表格 编辑状态没有初始化。 之后作为一起修改考虑

wangxiaoer5200 avatar Jan 04 '22 12:01 wangxiaoer5200

@lzdjack 使用的是最新的main分支代码

Wang-Yumin avatar Jan 04 '22 12:01 Wang-Yumin

@wangxiaoer5200 这个问题在官网存在,在我的工程里面没有复现 GIF

Wang-Yumin avatar Jan 04 '22 12:01 Wang-Yumin

@Wang-Yumin 我没复现出来 @wangxiaoer5200 的错误倒是很明显,@Wang-Yumin 如果你能用官网的例子复现出来 就更好了

lzdjack avatar Jan 04 '22 14:01 lzdjack

@lzdjack 我使用官网的例子复现了,与是否开启搜索区域没有关系,在useTable配置中添加rowKey: 'id',即便不开启搜索区域使用表格刷新也会出现校验不通过的情况

Wang-Yumin avatar Jan 05 '22 02:01 Wang-Yumin

赶紧你本地没复现是因为你用的是可编辑单元 而不是编辑行。猜测

wangxiaoer5200 avatar Jan 05 '22 07:01 wangxiaoer5200

感觉

wangxiaoer5200 avatar Jan 05 '22 07:01 wangxiaoer5200

@wangxiaoer5200 不是的,我使用的是编辑行Table,我找到原因了,还是因为 rowKey 的问题,加了 rowKey: 'id', 后,行编辑状态下操作列均不会置灰,所以没复现,我删除 rowKey 后,行编辑状态下其他操作列会置灰,你说的那个问题也复现了。 image

Wang-Yumin avatar Jan 05 '22 07:01 Wang-Yumin

bug原因是因为antv在相同的key下不会再次去渲染customRender里的EditableCell组件(customRender方法里做了一系列方法), 但是onValid是追加在data数据里面,所以每次请求会把record?.validCbs方法覆盖掉导致undefind,一直为false, 目前来看要处理这个问题可能要破坏性更新,用bodyCell插槽会在key相同的情况下也能再次渲染EditableCell组件,亲测能解决这个问题

lzdjack avatar Jan 05 '22 07:01 lzdjack

@lzdjack 这个问题近期能解决么?或者你有什么解决方案,贴出来我把我本地工程先改了试试

Free-Qi avatar Jan 11 '22 08:01 Free-Qi

你可以每次都让他自己生成key,别自己声明key,也能解决这个问题

lzdjack avatar Jan 12 '22 00:01 lzdjack

我遇到的是行编辑和rowKey同时使用会出现循环渲染的情况导致页面变得特别的卡 但是去掉rowKey我就不能实时渲染了(我把表格放在了抽屉里)

SmallDryad avatar Jan 17 '22 02:01 SmallDryad

请问解决了吗

xinbingyao avatar Mar 29 '23 03:03 xinbingyao

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

anncwb avatar May 02 '24 01:05 anncwb