ElementUI之表格toggleRowSelection选中踩坑记录

 更新时间:2024年03月11日 10:38:06   作者:JACHJJ  
这篇文章主要介绍了ElementUI之表格toggleRowSelection选中踩坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

ElementUI表格toggleRowSelection选中踩坑

问题

toggleRowSelection选中不了

解决方法

this.$nextTick( ()=> {
})

问题原因分析

在选中的时候,DOM渲染不及,导致无法选中;

el-table中使用toggleRowSelection方法注意点

1.UI界面

产品设计想实现左侧选中的企微号列表数据在右侧展示已选的企微号,这里分页是记住分页选中的(使用了row-key和reserve-selection属性,这里就不多赘述了)。

  • 在右侧列表有清空按钮就是清空右侧已选的企微号,并且还原左侧为未选状态,这里方便实现使用了el-table组件中的clearSelection方法。
  • 在右侧列表的下面有一个 x号 出掉这条数据的选中状态,左侧对应的状态为未选。使用了toggleRowSelection方法,操作看也没用问题,但若左侧切换分页再切换到对应的选中的页面,再操作右侧的删除按钮,这里就出现了bug,对应的数据不但没有清除已选而且还追加一条数据。

2.代码示例

附录:在线代码截图,展示效果yyds 在线代码截图

3.代码块

代码块放上来,感觉也没有什么用

	//选择企微员工号
    handelOperationClick(val) {
      // this.selectOpeArr = val; // 选择回调函数直接赋值给变量,不要watch监听再存储数据
      this.operationArrId = [];
      this.operationArrName = [];

      // console.log(val, val.length);
      this.chosenList = val;
      // this.chosenList = JSON.parse(JSON.stringify(val))
      this.chosenTotal = val.length;
    },

	//单个删除
    handleByDel(row) {
      // this.chosenList.forEach((item, i) => {
      //   // if (item.mobile == row.mobile) {
      //   //   // return console.log(item);
      //   //   this.chosenList.splice(i, 1); //删除下标为i的元素
      //   //   return this.chosenList;
      //   // }

      //   if (item.id == row.id) {
      //     // return console.log(item);
      //     this.chosenList.splice(i, 1); //删除下标为i的元素
      //     this.$refs.moreTable.toggleRowSelection(row);
      //     return this.chosenList;
      //   }
      // });

      this.$refs.moreTable.selection.forEach((item, i) => {
        if (item.id == row.id) {
          this.$refs.moreTable.toggleRowSelection(item);
        }
      });
      /**
       * 使用el-table表格ref属性调用selection获取表格已选的,再操作toggleRowSelection方法
       * 这样分页再操作toggleRowSelection方法就不会出现多追加一条
       */
    },

4.解决办法

使用el-table表格ref属性调用selection获取表格已选的,再操作toggleRowSelection方法,这样分页再操作toggleRowSelection方法就不会出现多追加一条。

代码示例中开始使用@selection-change监听已选的数据,将其存储变量this.chosenList,再操作toggleRowSelection方法出现左侧分页右侧出现多追加一条数据。这里是分页选中的数据和@selection-change监听已选的数据指针地址不一致导致了。

也是看到网友博客里面这段方法写的,想试试的

console.info(this.$refs.multipleTable.tableData);
console.info(this.$refs.multipleTable);

打印了这个属性发现了selection这个方法正是已经选择的左侧列表,就想在这个属性获取的已选列表数据操作toggleRowSelection方法,试了看可以了,开始看网上文档找解决方法也没有说的,就记录一篇文档吧,今天上班有时间整理一下,哈哈。

这个方法实质是分页之后也获取已选的列表数据,之前的那种方式是在左侧已选的数据赋值给一个变量,当在分页这个地址和赋值变量this.chosenList的地址不一致了,这样分页再操作toggleRowSelection方法就出现多追加一条的问题。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue之el-select结合v-if动态控制template显示隐藏方式

    Vue之el-select结合v-if动态控制template显示隐藏方式

    这篇文章主要介绍了Vue之el-select结合v-if动态控制template显示隐藏方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Vue中的高德轨迹回放

    Vue中的高德轨迹回放

    这篇文章主要介绍了Vue中的高德轨迹回放问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Vue使用antd中input组件去验证输入框输入内容(rules 案例)

    Vue使用antd中input组件去验证输入框输入内容(rules 案例)

    这篇文章主要介绍了Vue使用antd中input组件去验证输入框输入内容-rules-案例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • vue在响应头response中获取自定义headers操作

    vue在响应头response中获取自定义headers操作

    这篇文章主要介绍了vue在响应头response中获取自定义headers操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 一篇文章搞懂Vue3中如何使用ref获取元素节点

    一篇文章搞懂Vue3中如何使用ref获取元素节点

    过去在Vue2中,我们采用ref来获取标签的信息,用以替代传统 js 中的 DOM 行为,下面这篇文章主要给大家介绍了关于如何通过一篇文章搞懂Vue3中如何使用ref获取元素节点的相关资料,需要的朋友可以参考下
    2022-11-11
  • nginx+vue.js实现前后端分离的示例代码

    nginx+vue.js实现前后端分离的示例代码

    这篇文章主要介绍了nginx+vue.js实现前后端分离的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Vue3封装ElImageViewer预览图片的示例代码

    Vue3封装ElImageViewer预览图片的示例代码

    本文主要介绍了Vue3封装ElImageViewer预览图片的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • LRU算法在Vue内置组件keep-alive中的使用

    LRU算法在Vue内置组件keep-alive中的使用

    LRU算法全称为least recently use 最近最少使用,核心思路是最近被访问的以后被访问的概率会变高,那么可以把之前没被访问的进行删除,维持一个稳定的最大容量值,从而不会导致内存溢出。
    2021-05-05
  • 详解Vue3中useLocalStorage的用法

    详解Vue3中useLocalStorage的用法

    这篇文章主要为大家详细介绍了Vue3中useLocalStorage用法的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-10-10
  • 详解el Cascader懒加载数据回显示例

    详解el Cascader懒加载数据回显示例

    这篇文章主要为大家介绍了详解el Cascader懒加载数据回显示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论