vue elementui v-for 循环el-table-column 第一列数据变到最后一个
这个问题可能是因为在使用v-for
进行列的渲染时,数据的顺序被颠倒了。v-for
在没有指定key
的情况下,会将最后一个数据项渲染到表格的第一列。
为了解决这个问题,你需要确保v-for
有一个稳定的key
值,通常使用数组的索引作为key
是不推荐的,因为如果数组顺序发生变化,这可能会导致渲染问题。你可以使用数据项的唯一标识作为key
。
下面是一个修改后的例子:
<template>
<el-table :data="tableData">
<el-table-column
v-for="column in columns"
:key="column.prop"
:prop="column.prop"
:label="column.label">
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
// ... 数据项
],
columns: [
{ label: '姓名', prop: 'name' },
{ label: '年龄', prop: 'age' },
{ label: '地址', prop: 'address' },
// 确保columns数组的顺序不变
]
};
}
};
</script>
在这个例子中,columns
数组的每一项都有一个唯一的prop
属性,我们将这个作为el-table-column
的key
。这样,不管数据如何变化,列的渲染顺序都会保持正确。
评论已关闭