You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vuetify 2.x v-data-table中options对象传参报错排查

Vuetify 2.x v-data-table options.sortBy 报错:this.options.sortBy.findIndex is not a function

我刚帮你排查了这个问题,核心原因很明确:你给sortBy传的是单个字符串,但Vuetify 2.x的options.sortBy要求是一个字符串数组。

看官方文档里的类型定义,sortBy是string[]类型,而你在代码里写的是:

options: { sortBy: 'interval_benchmark' }

这样sortBy是个字符串,而不是数组,当v-data-table内部调用数组专属的findIndex方法时,自然就会抛出findIndex is not a function的错误了。

解决方案

把sortBy的值改成数组形式就行,即使你只需要按单个字段排序,也要用数组包裹:

options: { sortBy: ['interval_benchmark'] }

如果之后需要多字段排序,只要往数组里加字段名就行,同时别忘了sortDesc也对应是数组(控制每个排序字段的升降序),比如:

options: {
  sortBy: ['interval_benchmark', 'created_at'],
  sortDesc: [true, false] // 第一个字段降序,第二个升序
}

修正后的完整代码示例

你的topicsDataTable部分应该改成这样:

data() {
  return {
    topicsDataTable: {
      headers: [
        { text: 'Topic', value: 'title', sortable: false },
        { text: 'Current Interval', value: 'current_revision_interval', sortable: false },
        { text: 'Interval Benchmark', value: 'interval_benchmark', sortable: true },
        { text: 'Add Date', value: 'created_at', sortable: true },
      ],
      options: {
        sortBy: ['interval_benchmark'] // 这里改成数组格式
      }
    }
  }
}

这样就能正常触发排序逻辑,不会再报错啦~

内容的提问来源于stack exchange,提问作者VerySeriousSoftwareEndeavours

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 11:32:41