使用el-table报错Duplicate keys detected: '[object Object]'

发布于 2022-09-12 22:13:20 字数 3185 浏览 17 评论 0

使用一下tableData数据类型就会报出上面的错误,请问怎么解决?

image

<template>
    <el-table
            :data="tableData"
            style="width: 100%"
            ref="multipleTable"
            tooltip-effect="dark"
            @selection-change="handleSelectionChange"
            border
            highlight-current-row
            id="table-key"
            row-key="id"
            default-expand-all
    >
      <el-table-column
              label="日期"
              width="180">
        <template slot-scope="scope">
            <span>
              {{scope.row['date']['value']}}
            </span>

        </template>
      </el-table-column>
      <el-table-column
              prop="name"
              label="姓名"
              width="180">
      </el-table-column>
      <el-table-column
              prop="address"
              label="地址">
      </el-table-column>
    </el-table>
</template>

<script>
export default {
  name: "studentObjList",
  data() {
    return {
      tableData: [
        {
          "id": {
            "type": "number",
            "value": "1"
          },
          "date": {
            "type": "text",
            "value": "2016-05-02"
          },
          "name": {
            "type": "text",
            "value": "李小虎"
          },
          "address": {
            "type": "input",
            "value": "上海市普陀区金沙江路 1518 弄"
          },
          "IsAudit": {
            "type": "select",
            "value": "number",
            "label": "数字输入框",
            "options": [
              {
                "value": "input",
                "label": "文本输入框"
              },
              {
                "value": "number",
                "label": "数字输入框"
              },
              {
                "value": "date",
                "label": "日期框"
              }
            ]
          },
          "sex": {
            "type": "number",
            "value": 0
          }
        },
        {
          "id": {
            "type": "number",
            "value": "1"
          },
          "date": {
            "type": "text",
            "value": "2016-05-02"
          },
          "name": {
            "type": "text",
            "value": "李小虎"
          },
          "address": {
            "type": "input",
            "value": "上海市普陀区金沙江路 1518 弄"
          },
          "IsAudit": {
            "type": "select",
            "value": "number",
            "label": "数字输入框",
            "options": [
              {
                "value": "input",
                "label": "文本输入框"
              },
              {
                "value": "number",
                "label": "数字输入框"
              },
              {
                "value": "date",
                "label": "日期框"
              }
            ]
          },
          "sex": {
            "type": "number",
            "value": 0
          }
        }
      ]
    }
  },
  methods: {
    handleSelectionChange () {

    }
  }
}
</script>

<style scoped>

</style>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心清如水 2022-09-19 22:13:20

你的row-key写的是'id',然后解析的时候自然会找到tableData的子元素的id属性,但是这个id属性并不是字符串或者数字,而是一个对象,而对象转字符串就会被转化为"[object Object]"。但是key值是每行都是唯一的才可以,你这样子的话每行的key的相同了,就会报错。报错的翻译就是,有重复的名为"[object Object]"的key值
从文档知道,row-key可以传一个function,传入值为row,所以你这里的row-key要这么写
:row-key="(row)=>row.id.value"

逆蝶 2022-09-19 22:13:20

element-ui官网文档显示
row-key支持多层访问,直接写id.value就可以。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文