Vue 3结合element plus(问题总结)之 table组件实现多选和清除选中

2023-11-05

问题描述和原因
一直出现toggleRowSelection和clearSelection不是方法
问题解决
后来发现getCurrentInstance支持访问内部组件实例。
getCurrentInstance 只能在 setup 或生命周期钩子中调用。

如需在 setup 或生命周期钩子外使用,请先在 setup 中调用 getCurrentInstance() 获取该实例然后再使用。

小案例

<template >
  <div id="shoplist">  
 <el-table
    ref="multipleTableRef"
    :data="data.arr"
    style="width: 100%"
    height="90%"
    stripe
    @selection-change="handleSelectionChange"
  > 
     <el-table-column type="selection" width="40" /> 
     <el-table-column property="shopname" label="店名" width="120" show-overflow-tooltip/>
    <el-table-column property="score" label="评分" sortable width="80" />
     <el-table-column property="sales" label="销量" sortable width="80" />
      <el-table-column property="type" label="类型" width="70" /> 
    
   </el-table>

  <div style="margin-top: 20px; margin-left:20px">
    <el-button @click="toggleSelection(data.arr)">全选</el-button>
    <el-button @click="toggleSelection()">清除</el-button>
  </div>
  </div>
</template>

<script>
import { onMounted, ref, watch } from 'vue' ;
import { getCurrentInstance } from 'vue'
import {ElTable} from 'element-plus'
import { reactive, toRaw, toRefs } from '@vue/reactivity';
export default {
  setup () {
   const  instance = getCurrentInstance();
    const multipleTableRef = ref(null);
    const multipleSelection  = ref([]);
    var toggleSelection =(rows)=>{
       var ultipleTabInstance = toRefs(instance.refs.multipleTableRef)
       console.log(ultipleTabInstance.toggleRowSelection);
        if(rows){
          rows.forEach(row => {
           ultipleTabInstance.toggleRowSelection.value(row, undefined)
          });
        }else{
          ultipleTabInstance.clearSelection.value()
        }
      }
    onMounted(()=>{
      // console.log(multipleTableRef);
     
    })
    var handleSelectionChange =(val)=>{
     
      multipleSelection.value = val;
      
    }
   
   
   var data = reactive({
     arr:[ {
          id:1,
          shopname:"沙县小吃",
          score:5.5,
          sales:1200,
          hh:12,
          type:"快餐"
        },
      {
          id:2,
          shopname:"法式牛排餐厅",
          score:7.5,
          sales:2400,
          hh:12,
          type:"西餐"
        },
        {
          id:3,
          shopname:"沙县大吃",
          score:6.5,
          sales:200,
          hh:12,
          type:"快餐"
        },
        {
          id:4,
          shopname:"南昌瓦罐汤",
          score:6.9,
          sales:2400,
          hh:12,
          type:"快餐"
        },
      ]    
   })
  
    return {
      data,
      multipleTableRef,
     toggleSelection,
     handleSelectionChange,
    }
  },
}
</script>

<style>
 #shoplist{
      position: fixed;
      z-index: 1001;
      width: 390px;
      height: 100%;
      min-height: 100vh;
      right: 0px;
      bottom: 0px;
      padding-top: 5px;
      background-color: #f2f2f2;
      transition: 1s;
      /* overflow: hidden; */
      border: 1px solid #333;
  }
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue 3结合element plus(问题总结)之 table组件实现多选和清除选中 的相关文章

  • chrome 调试器承诺在暂停时不会解析?

    也许我没有正确调试承诺 但基本上 如果您在断点处停止并运行异步代码 它实际上不会完成 直到您恢复执行为止 这是一个问题 调试器允许您快速试验多个 api 方法 但如果您恢复它 您就不能 debugger now type the follo
  • 如何更改传单中功能集的样式?

    我正在看等值区域的例子 https leafletjs com examples choropleth https leafletjs com examples choropleth 这是他们使用的数据源 type Feature prop
  • 如何使用 selenium 和 Mocha 获取 xPath() 选择的锚标记的文本

    我已经成功选择了 a 标签 我想显示锚标记的文本 但无法这样做 我正在使用 selenium mocha javascript 和 phantomJS 这是我的脚本 详细 var assert require assert var test
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 如何流式传输 OpenAI 的完成 API?

    我想流式传输结果通过 OpenAI 的 API 完成 https beta openai com docs api reference completions 该文档提到使用服务器发送的事件 https developer mozilla
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 是否有任何非轮询方式来检测 DOM 元素的大小或位置何时发生变化?

    很长一段时间以来 我一直在寻找一种方法来检测 DOM 元素的大小或位置何时发生变化 这可能是因为窗口调整了大小 或者因为向该元素添加了新的子元素 或者因为在该元素周围添加了新元素 或者因为 CSS 规则已更改 或者因为用户更改了浏览器的字体
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse

随机推荐

  • 基于类属属性的多标记学习——含python代码

    本文的基本内容翻译自Lift Multi Label Learning with Label Specific Features 1 含部分本人的理解 最后附带了我复现的python代码的github链接 类属属性 所谓多标记学习是相对于单
  • 修改Nuget包默认存放路径

    默认情况下所有的Nuget包都会下载到C盘 目前我这边有几十个G的大小 这导致我C盘的c 教程容量越来越小 我们可以在Nuget config中修改package存放路径 Nuget config 在C Users UserName App
  • 解决 R 语言中遇到的奇异拟合错误(singular fit encountered)

    解决 R 语言中遇到的奇异拟合错误 singular fit encountered 在 R 语言中 当执行线性回归或拟合模型时 有时会遇到奇异拟合错误 singular fit encountered 的问题 这个错误表示拟合过程中出现了
  • 关于知识的理解与忘却

    关于知识的理解与忘却 在做项目的过程中 我会遇到一些难题 会通过baidu与google来解决 解决之后 我很少对这些知识进行总结 但是 将来又遇到这方面的知识时 我发现却很难再找到记忆中的那些文章 当初对于自己理解这些知识有很大影响的文章
  • 使用OpenCV,Python进行图像哈希(差分哈希 dHash)处理

    使用OpenCV Phthon进行图像哈希处理的一个重要应用是去除重复的图像 当你有多个相册的图片 进行合并时 so boring 有一些图片是重复的 肉眼来看太难删除了 图像哈希可以帮助你完美的解决这个问题 找到完全相同的图片 只保留一张
  • python最详细的安装与完全卸载

    一 python的安装 1 python下载 在网上 输入网址https www python org downloads 下载Windows最新的python程序 我电脑为64位 注意 不要下载32位的且尽可能不要下载3 6 x以上的版本
  • 虚幻4——蓝图在脚本之间的交互

    从虚幻3到虚幻4 之前都已经习惯了在脚本中写节点 然后在编辑器中供关卡师使用 所以对于这种开发模式 也不会有什么不适应的感觉 可视化编辑 也是以后游戏开发的重要的一环吧 但是国内游戏开发还没有这一种概念 对于关卡师 尤其懂游戏逻辑的 这是多
  • 算法 - 冒泡排序(Bubble_ Sort)

    在总结冒泡排序前 先从头开始 对冒泡排序 BubbleSort 进行一个系统性了解 冒泡排序法 又称交换排序法 是从观察水中的气泡变化构思而成的 原理是从第一个元素开始 比较相邻元素的大小 如果大小顺序不对 则进行两个数据的调换 就好像气泡
  • 基于mybatis的数据库脱敏

    背景 思路 实现 思考 背景 最近接到需求需要对数据库中的电话 身份证号等敏感信息进行脱敏加密处理 再加上之前面试时也被问到相关问题 所有在此记录 脱敏对象是数据库的字段 所以在数据库存取的出入口进行加解密操作是最合适的 项目中使用myba
  • 【T1】T1飞跃专业版修改账套名称

    问题描述 使用友加畅捷T1飞跃专业版的过程中 建立完账套后 无法从前台操作进行账套名称的修改 解决方法 打开数据库管理器 执行下述语句 进行修改 update master Sub List set ztname 新名称 where ztn
  • 偏导数及其几何意义

    在一元函数中 我们已经知道导数就是函数的变化 率 对于二元函数我们同样要研究它的 变化率 然 而 由于自变量多了一个 情况就要复杂的多 一 几何意义 在xOy平面内 当动点由P x0 y0 沿不同方向变化时 函数f x y 的变化快慢一般说
  • chisel多时钟域设计(注释)

    在数字电路中免不了用到多时钟域设计 尤其是设计异步FIFO这样的同步元件 在Verilog里 多时钟域的设计很简单 只需声明多个时钟端口 然后不同的always语句块根据需要选择不同的时钟作为敏感变量即可 在Chisel里 则相对复杂一些
  • 杂散应用记录

    启动运行路径 etc ini d rc local svn 启动snv svnserve d listen port 3690 r var svn svnrepos
  • 传奇开区助手源码-添加支付平台

    传奇GM都用过的一款开区助手 如何添加支付平台对接兑换 项目截图 创建兑换 1 添加支付平台组合框 2 增加支付回调相关网络 至此添加登陆函数即可实现平台登陆功能 不过要注意的是默认仅支持http 支持https请添加三方网络模块实现 否则
  • 【COCO数据集】Annotations标注解析

    COCO dataset 是计算机视觉领域中最流行的数据集之一 用于对各种视觉任务进行基准测试 例如目标检测 分割 关键点检测等 在数据集中 有118K张图像用于训练 5K张图像用于验证 下载数据集后 目录中内容如下 COCO Annota
  • android studio修改module名称

    新建一个android studio项目 默认Module名称是app 右键app选择Rename 或者Shift F6也可以 重命名module名称 重命名为abc之后中 如图上面箭头所指的app会出错 点击Edit Configurat
  • 多益网络笔试题 随机地从大小为n的数组中选取m个整数。要求每个元素被选中的概率相等

    题目 随机地从大小为n的数组中选取m个整数 要求每个元素被选中的概率相等 时间复杂度是O m 参考链接 https my oschina net u 2822116 blog 795323 分析 这道题目和随机洗牌算法类似 只需要随机选取1
  • Java开发环境搭建03:idea中使用Maven

    一 Maven介绍 Maven项目对象模型 POM 可以通过一小段描述信息来管理项目的构建 报告和文档的项目管理工具软件 Maven是Apache 的开源项目 Maven使用Java开发的 运行需要Java环境的支持 Maven的作用有三点
  • leveldb之Compaction操作下之具体实现

    leveldb之Compaction操作下之具体实现 2015 05 17 19 40 438人阅读 评论 0 收藏 举报 分类 leveldb 13 版权声明 本文为博主原创文章 未经博主允许不得转载 目录 由上文可知 合并主要分为三种
  • Vue 3结合element plus(问题总结)之 table组件实现多选和清除选中

    问题描述和原因 一直出现toggleRowSelection和clearSelection不是方法 问题解决 后来发现getCurrentInstance支持访问内部组件实例 getCurrentInstance 只能在 setup 或生命