Table
's prop columns
используется для управления тем, какие столбцы будут отображаться в таблице, но не влияет на форму данных, используемых как dataSource
.Пропуск столбца не удаляет его значение из dataSource
, и вы все равно можете ссылаться на него, например, в свойстве render
столбца (например, для генерации обратного вызова).
Пример кода ( обратите внимание, что hiddenValue
не имеет прямой ссылки на свойство dataIndex
какого-либо столбца и может быть вообще опущено ):
const TableWithHiddenColumn = () => {
const dataSource = [
{ renderedValue: 'foo', hiddenValue: 'id_1' },
{ renderedValue: 'bar', hiddenValue: 'id_2' },
{ renderedValue: 'biz', hiddenValue: 'id_3' },
];
const columns = [
{ title: 'Visible column', dataIndex: 'renderedValue', key: 'renderedValue' },
{
title: 'Action',
key: 'action',
render: (record) => (
<Button
onClick={() => {
console.log(record.hiddenValue);
}}
>
{record.hiddenValue}
</Button>
),
},
];
return <Table columns={columns} dataSource={dataSource} />;
};
Результат: