ddfweb 2023-05-26 17:14 采纳率: 0%
浏览 35

elementui,setCurrentRow()取消高亮行失效,原因是?

elementui,setCurrentRow()取消高亮行失效,原因是?
问题描述:
同时设置了父行的固定列和展开行,

预期效果:
点击父行(看着像父行),父行高亮,取消子行高亮;
点击子行,子行高亮,取消父行高亮;

实际效果:
如果只设置展开行,不设置固定列,可以实现预期效果;
如果同时再设置固定列,点击父行,父行高亮,setCurrentRow()失效,不能取消子行高亮;

img

补充,
设置固定列后,elementui复制了一份table,其中ref也重名了,

img

结论
elementui设置固定列后,
1.不适合展开行的高亮操作,
2.不适合拖拽插件sortablejs的使用,

  • 写回答

1条回答 默认 最新

  • 断水流大撕兄 HarmonyOS创作领域新星创作者 2023-05-26 17:17
    关注

    老弟,这是Element UI Table组件的一个已知问题。当同时使用了固定列和展开行时,setCurrentRow()方法会失效。
    这是因为:

    1. 点击父行时,实际上点击的是展开行。由于展开行使用了복制元素,所以导致父行也被高亮。
    2. setCurrentRow()方法在内部使用了rowKey来定位行,而展开行的rowKey与父行相同。所以无法准确定位到展开行来取消高亮。解决方法有两种:
    3. 不使用固定列,只使用展开行。这可以避免上述问题,setCurrentRow()方法正常工作。
    4. 自定义rowKey,为展开行生成独立的rowKey,例如:
    rowKey(row) {
      return row.id + (row.expand ? '-expand' : '')
    }
    

    这会为展开行生成rowKey如"12-expand",而父行rowKey为"12"。那么setCurrentRow()就可以准确定位到展开行实现取消高亮。
    望采纳!

    评论

报告相同问题?

问题事件

  • 修改了问题 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥60 Cocos creator缓动问题
  • ¥40 微信小程序 使用vant组件ActionSheet 下拉面板,内容区域滚动会触发。scroll-view自定义下拉刷!即使设置停止下拉刷新也不行。
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
  • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
  • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变
  • ¥15 使用华为ENSP软件模拟实现该实验拓扑
  • ¥15 通过程序读取主板上报税口的数据
  • ¥15 matlab修改为并行