Все, что вы хотите, возможно, хотя и немного утомительно. Для этого вам нужно будет включить ключи открытых строк как часть состояния React и напрямую управлять расширением строк. Примерно так (с использованием хуков):
const [expandedRowKeys, setExpandedRowKeys] = React.useState([]); // Collapse all rows by default
const onExpansion = (isExpanded, record) => {
if (isExpanded)
setExpandedRowKeys([ ...expandedRowKeys, record.key]);
else
setExpandedRowKeys(expandedRowKeys.filter(key !== record.key));
}
const collapseAllRows = () => setExpandedRowKeys([])
const expandAllRows = () => setExpandedRowKeys(yourTableRecords.map(record => record.key));
return (
<Table
...
expandedRowRender={record => getExpansionContent()}
expandedRowKeys={expandedRowKeys}
onExpand={onExpansion}
/>
<button onClick={expandAllRows}>Expand All</button>
<button onClick={collapseAllRows}>Collpse All</button>
РЕДАКТИРОВАТЬ: Что касается размещения кнопки (-ей) для разворачивания / сворачивания всех строк в «столбце значков расширения» в верхнем левом углу, antd
не поддерживает для этого, он поддерживается только для выбора строки. Если вам действительно нужна такая реализация, она должна быть вне antd
. вам придется создать <Checkbox />
вручную, использовать CSS, чтобы разместить его в этой верхней левой строке (возможно, придется использовать отрицательные поля) и назначить обработчики для развертывания / свертывания всех строк.
Это взлом, но на данный момент это единственный способ добиться этого