el-table 清空单选框所选中数据

博主在做项目时遇到一个需求,如下:

这一步还是比较容易实现的,只需将两个tabel表单的数据同步即可,但是问题是,我发现每次关闭抽屉之后,选中框会自动清零,表单里的数据也随之消失了,想达到每次关闭抽屉,但是单选框依然保持我们的选择怎么办呢,:reserve-selection="true", 只需给我们的el-table-colum设置上该条属性即可。

但是下一步,我又遇到了问题,因为抽屉里和表单里的数据我是绑定在一起的,这个下拉框选择不同的数据之后,抽屉和表单的数据也会随之改变,但是呢,我又设置了上一步reserve-selection="true"这个属性,朋友们可以去试一下选择下拉框再去选抽屉里的属性,会发现出现了一个bug,数据会出现错误,那现在我的需求是,当我下拉框选择不同数据的时候,先清除单选框的选中状态,再打开抽屉进行操作

clearSelection方法用于多选表格,清空用户的选择,加上这个方法我感觉我行了,于是自信满满的打开谷歌浏览器,F12,尼玛爆红了

 在这里插入图片描述

 发现页面直接报错了,属性不明确。这就傻了,明明是根据官方文档来写的啊。改了好几次才发现,因为 Dom 没有加载完成,导致获取不到refs元素,所以报错。

可以用以下方式解决,在清除之前加一个if判断即可

 

 

 

### 实现 `el-table` 单选功能 为了实现在 Element UI 的 `el-table` 中的单选选择功能,可以自定义表格列并绑定点击事件来控制每一行的选择状态。下面是一个具体的实现方法: #### HTML 部分 创建一个带有唯一键属性的数据表,并移除默认多选框配置。 ```html <template> <div> <!-- 移除了type="selection" --> <el-table :data="tableData" @row-click="handleRowClick"> <el-table-column prop="date" label="日期"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </div> </template> ``` #### JavaScript 部分 通过 Vue 组件的方法处理行点击逻辑,在数据对象中维护当前被选中的项。 ```javascript <script> export default { data() { return { tableData: [ { date: '2016-05-03', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' }, { date: '2016-05-02', name: 'John', address: 'New York No. 1 Lake Park' } ], selectedRow: null // 存储当前选中的行 }; }, methods: { handleRowClick(row) { this.$refs.table.clearSelection(); // 清空之前的选择 if (this.selectedRow === row) { this.selectedRow = null; } else { this.selectedRow = row; this.$nextTick(() => { this.$refs.table.toggleRowSelection(row); // 切换选中状态 }); } } } }; </script> ``` 注意这里使用了 `$refs.table.clearSelection()` 来清除之前的任何已选项,从而确保每次只有一行处于选中状态[^1]。 此外还需要给 `<el-table>` 添加 `ref="table"` 属性以便于调用其 API 方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值