我有一个奇怪的行为下面的数据表:
<DataTable
:scrollable="true"
:value="shipments"
:totalRecords="shipments.length"
:reorderableColumns="true"
:alwaysShowPaginator="false"
:paginator="true"
:rows="10"
:resizableColumns="true"
columnResizeMode="fit"
sortMode="multiple"
:stripedRows="true"
removableSort
dataKey="reference"
responsiveLayout="scroll">
<template #empty> No records found </template>
<Column field="reference" header="Shipment Number" :sortable="true" frozen />
<Column header="Shipper" style="text-transform: capitalize">
<template #body="slotProps">
{{ slotProps.data.shipper.name.toLocaleLowerCase() }}
</template>
</Column>
</DataTable>
如果我尝试重新排序(拖动)列,我会得到下面的错误。每次我尝试重新排序,reference
列被添加到表中。
[Vue警告]:更新期间发现重复的键:"reference"确保密钥是唯一的。
如果删除Shipper
列的这一部分:
<template #body="slotProps">
{{ slotProps.data.shipper.name.toLocaleLowerCase() }}
</template>
并且只需使用field="shipper.name"
引用托运人名称,它就能正常工作,没有任何错误。
我哪里做错了?
1条答案
按热度按时间oyjwcjzk1#
阅读文档,我发现在使用
reorderColumns
功能时遗漏了一个重要部分。我需要设置一个columnKey,如果特定的列没有一个字段定义为每个文档:
如果列没有字段,请改用columnKey,因为在启用重新排序时,列必须具有唯一键。
我加了这个,现在可以用了: