在 Ant Design Vue 中,preserveSelectedRowKeys
是用于 Table 组件的一项属性,主要作用是控制在表格数据变化(如分页、过滤、排序等)时,是否保留已选择行的 rowKey
。
默认行为
当你使用行选择功能(rowSelection
)并且更改了分页、过滤条件或排序时,默认情况下表格会清除当前页之外的选中项。这是因为表格会认为当前显示的数据已经发生了变化。
preserveSelectedRowKeys
的作用
如果设置 preserveSelectedRowKeys
为 true
,即使表格数据变化(如分页、排序等),已选中的行依然会被保留。它确保选中的 rowKey
不会因为表格重新渲染而丢失。
html
<a-table
:row-selection="rowSelection"
:columns="columns"
:data-source="data"
:pagination="pagination"
:row-key="record => record.id"
:preserve-selected-row-keys="true"
/>
注意在rowSelection 里面使用,且返回computed
javascript
const selectKeys = ref<Key[]>([]);
const rowSelection = computed<ProTableProps['rowSelection']>(() => ({
selectedRowKeys: selectKeys.value,
preserveSelectedRowKeys: true,
onChange(values: Key[]) {
selectKeys.value = values;
},
}));