Invalid prop: type check failed for prop "name". Expected String with value "0", got Number with value 0
时间: 2023-08-18 19:08:37 浏览: 105
2020-web前端-vue项目出错-[Vue warn]: Invalid prop: custom validator check failed for prop “index”.
5星 · 资源好评率100%
这个错误是由于在 `el-table-column` 组件中使用了 `:prop="column.prop"`,而 `column.prop` 的值是数字类型的问题引起的。`el-table-column` 组件的 `prop` 属性期望的是一个字符串类型的值,而不是数字。
为了解决这个问题,你可以将 `column.prop` 的值转换为字符串类型。请修改你的代码如下:
```html
<template>
<div>
<el-table :data="tableData" border>
<el-table-column v-for="column in tableColumns" :key="String(column.prop)" :prop="String(column.prop)" :label="column.label">
<template slot-scope="scope">
{{ formatData(scope.row, column.prop) }}
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: "John Doe", age: 25 },
{ id: 2, name: "Jane Smith", age: 30 },
{ id: 3, name: "Bob Johnson", age: 35 }
],
tableColumns: [
{ prop: "id", label: "ID" },
{ prop: "name", label: "Name" },
{ prop: "age", label: "Age" }
]
};
},
methods: {
formatData(row, prop) {
if (prop === "age") {
// 在这里进行数据转换,例如将年龄乘以2
return row[prop] * 2;
}
// 默认情况下直接返回原始数据
return row[prop];
}
}
};
</script>
```
在上面的代码中,我们使用 `String(column.prop)` 将 `column.prop` 的值转换为字符串类型,从而避免了类型检查错误。
通过这个修改,你应该能够解决这个错误,并且能够正确地使用 `el-table` 动态生成表格,并进行数据转换。如果还有其他问题,请随时提问。
阅读全文