Vue.js vuetify:v-data-table键未定义排序单击

Vue.js vuetify:v-data-table键未定义排序单击,vue.js,vuetify.js,Vue.js,Vuetify.js,然后使用具有多个数据的v-data-table,如果onclick sort在控制台中有消息“TypeError:无法读取未定义的属性“key”,请帮助我 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_

然后使用具有多个数据的v-data-table,如果onclick sort在控制台中有消息“TypeError:无法读取未定义的属性“key”,请帮助我

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
时,key-ing集合的行业标准为(或类似):

  • npm i uuid
  • (如果使用typescript)
    npm i@types/uuid-D
  • 组件中:
    从“uuid”导入{v4作为uuid}
  • 在数据中:
    [/*您的items*/].map(item=>({…item,key:uuid()}))

在JavaScript中使用数组时,必须使用唯一标识符,因为数组中元素的顺序在各种实现中都无法保证。我还想补充一点,在JavaScript中使用数组也是必须的,因为它们比任何其他方法都快。

您需要显示您的代码。尝试添加一个提琴或产生错误的代码段。这是我的代码,然后第三次尝试在cliente列中排序错误持续。谢谢,太多了,你救了我!