[Bug] 上下滚动时,大部分行的数据会丢失
Version
"@visactor/vue-vtable": "^1.17.6",
Link to Minimal Reproduction
https://codesandbox.io/p/sandbox/viscator-vtable-vue-demo-compilation-forked-qj5kg3?file=%2Fpackage.json%3A10%2C5
Steps to Reproduce
在线代码编辑器中,我只修改了ListTable-Basic的页面代码。表格加载完毕,滚动时稳定会出现行数据丢失
Current Behavior
滚动时行数据空白
Expected Behavior
滚动时正确加载数据
Environment
- OS:
- Browser:
- Framework:
Any additional comments?
No response
@Rui-Sun 您复现了吗
@Rui-Sun 请问这个问题是确认存在了吗.是否加入修复计划?如果不存在,应该怎么办
@Rui-Sun 有没有什么临时的办法
@Rui-Sun 有没有什么临时的办法 customConfig里传入 maxDomCacheCount 「最大缓存节点数量」 现在内部默认只缓存100个节点,可以按需给一个足够大的值,另外vue属性里可以根据行列传入id值,一定程度上可以增大节点复用率
忘了这个功能在哪个版本更新的,建议用最新版吧
@Rui-Sun 有没有什么临时的办法 customConfig里传入 maxDomCacheCount 「最大缓存节点数量」 现在内部默认只缓存100个节点,可以按需给一个足够大的值,另外vue属性里可以根据行列传入id值,一定程度上可以增大节点复用率
添加了足够大的maxDomCacheCount参数,初始化完毕,滚动是没有问题的,但是上下不停的滚一会儿,还是会出现数据空白的情况。bug复现看下面 ` <ListTable :options="{ ...option, customConfig: { createReactContainer: true, maxDomCacheCount: 10000 } }"
<ListColumn v-for="column in columns" :key="column.field" :field="column.field" :title="column.title">
<template #customLayout="{ width, height, record }">
<Group :width="width" :height="height" display="flex" align-items="center" :vue="{}">
<div>
<span class="BOM">BOM</span>
</div>
</Group>
</template>
</ListColumn>
`
@fangsmile 请问这个问题还能解决吗?也不知道有什么临时解决的办法
@luoxiaofeng1029 临时解决方案上面有提到,我今天调试下这个问题
@luoxiaofeng1029 @gaochen1112 对于这种dom内容相同的批量渲染,vue的diff算法会错误地复用dom节点,这种情况建议给dom节点添加key标识,用法原理同v-for
@luoxiaofeng1029 @gaochen1112 对于这种dom内容相同的批量渲染,vue的diff算法会错误地复用dom节点,这种情况建议给dom节点添加key标识,用法原理同v-for
按照你的方法,临时解决了这个问题。如果你觉得这个问题不需要修复,可以关闭这个issue
@gaochen1112 这位同学,请仔细看,我是建议你这样去做,不管你使用vue3还是其他插件,应该主动去适应他的用法哦,另外插件内也适配了这种情况