一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
写在前边
页面中的表格中有些情况下是带复选框去进行勾选的,可以默认勾选也可以主动勾选,但是在默认勾选的时候,有些勾选是生效的。
失效原因
设置默认选中的行数据
与表格中的行数据
不是同一个数据(字符是一样的,但是内存指针不一样),所以导致直接使用选中的行数据
来设置可能会不生效
一般情况下我们默认的勾选方式是这样的:
if (state.id) {
state.tableData.forEach(item => {
if (item.dataStoreId == state.id) {
multipleTable.value.toggleRowSelection(item, true);
}
})
}
解决方式:
通过循环选中的行数据(multipleSelection)
,然后从表格所有数据(tableData)
中匹配 id 找到需要选中的项来帮助选中
代码如下:
state.tableData.forEach(item => {
if (item.dataStoreId == state.id) {
setTimeout(() => {
multipleTable.value.toggleRowSelection(state.tableData.find(items => items.dataStoreId == state.id), true);
}, 500)
}
})
注意:``` find 方法匹配不到数据会返回undefined,导致报错