vue.js - vuetify: v-data-table key undefined sort click
问题描述
然后使用具有多个数据的 v-data-table,如果 onclick 排序在控制台中有一条消息“TypeError: Cannot read property 'key' of undefined”,请帮帮我
vue_2.6.11.min.js:6 TypeError: Cannot read property 'key' of undefined
at ir (vue_2.6.11.min.js:6)
at vue_2.6.11.min.js:6
at x (vue_2.6.11.min.js:6)
at vue_2.6.11.min.js:6
at x (vue_2.6.11.min.js:6)
at vue_2.6.11.min.js:6
at x (vue_2.6.11.min.js:6)
at vue_2.6.11.min.js:6
at x (vue_2.6.11.min.js:6)
at a.__patch__ (vue_2.6.11.min.js:6)
解决方案
问题是您的数据中有重复的键。如果您希望所有表格的功能正常工作,尤其是排序,您必须为每一行提供一个唯一的键。
您的示例的简单修复是:
data: () => ({
// assign a unique `key` to each element
table_body: [/* your data here */].map((item, key) => ({...item, key}))
})
在模板中:
<v-data-table ref="tablaReporteGenerico"
item-key="key"
... />
看到它在这里工作。
在使用index
es 作为key
作品时,键入集合的行业标准是uuid(或类似的):
npm i uuid
- (如果使用打字稿)
npm i @types/uuid -D
- 在组件中:
import { v4 as uuid } from 'uuid'
- 在数据中:
[/* your items */].map(item => ({ ...item, key: uuid() }))
在 JavaScript 中处理数组时,唯一标识符是必须的,因为数组中元素的顺序在不同的实现中是不能保证的。我还要补充一点,在 JavaScript 中使用数组也是必须的,因为它们比任何替代方法都快。
推荐阅读
- postgresql - 将数据从 CSV 复制到 postgres 忽略唯一键违规
- cmake - CMake 可以告诉我哪个模块或配置文件用于 find_package() 吗?
- r - 从具有特定条件的数据框中获取不同的行
- javascript - 在 fetch() 上什么都没有发生
- c# - 在不执行构建过程的情况下保持 url 角度的最佳方法
- python - 如何通过阈值打破数据帧?
- php - SQLSTATE [42000]:语法错误或访问冲突:laravel 中 groupby 的 1055
- excel - 宏运行时错误 1004:对象“_global”的方法“单元格”失败
- pytorch - 如何找到二维激活图(pytorch)的均值和协方差
- python - 我可以以返回值作为参数多次运行同一个函数吗?