2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
|
|
|
|
category: Components
|
2022-11-09 12:28:04 +08:00
|
|
|
|
group: 数据展示
|
2016-07-04 10:51:50 +08:00
|
|
|
|
title: Collapse
|
|
|
|
|
subtitle: 折叠面板
|
2024-03-22 14:22:42 +08:00
|
|
|
|
description: 可以折叠/展开的内容区域。
|
2022-11-30 20:14:41 +08:00
|
|
|
|
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*B7HKR5OBe8gAAAAAAAAAAAAADrJ8AQ/original
|
2023-02-09 22:17:31 +08:00
|
|
|
|
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*sir-TK0HkWcAAAAAAAAAAAAADrJ8AQ/original
|
2016-03-31 14:17:09 +08:00
|
|
|
|
---
|
2015-06-15 22:01:39 +08:00
|
|
|
|
|
2015-06-26 14:42:30 +08:00
|
|
|
|
## 何时使用
|
2015-06-17 20:24:42 +08:00
|
|
|
|
|
2015-06-26 14:42:30 +08:00
|
|
|
|
- 对复杂区域进行分组和隐藏,保持页面的整洁。
|
|
|
|
|
- `手风琴` 是一种特殊的折叠面板,只允许单个内容区域展开。
|
2015-07-11 10:17:58 +08:00
|
|
|
|
|
2023-05-25 10:19:56 +08:00
|
|
|
|
```tsx | pure
|
|
|
|
|
// >= 5.6.0 可用,推荐的写法 ✅
|
|
|
|
|
const text = `
|
|
|
|
|
A dog is a type of domesticated animal.
|
|
|
|
|
Known for its loyalty and faithfulness,
|
|
|
|
|
it can be found as a welcome guest in many households across the world.
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
const items: CollapseProps['items'] = [
|
|
|
|
|
{
|
|
|
|
|
key: '1',
|
|
|
|
|
label: 'This is panel header 1',
|
|
|
|
|
children: <p>{text}</p>,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: '2',
|
|
|
|
|
label: 'This is panel header 2',
|
|
|
|
|
children: <p>{text}</p>,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: '3',
|
|
|
|
|
label: 'This is panel header 3',
|
|
|
|
|
children: <p>{text}</p>,
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
<Collapse items={items} defaultActiveKey={['1']} />;
|
|
|
|
|
|
|
|
|
|
// <5.6.0 可用,>=5.6.0 时不推荐 🙅🏻♀️
|
|
|
|
|
|
|
|
|
|
<Collapse defaultActiveKey={['1']} onChange={onChange}>
|
|
|
|
|
<Panel header="This is panel header 1" key="1">
|
|
|
|
|
<p>{text}</p>
|
|
|
|
|
</Panel>
|
|
|
|
|
<Panel header="This is panel header 2" key="2">
|
|
|
|
|
<p>{text}</p>
|
|
|
|
|
</Panel>
|
|
|
|
|
<Panel header="This is panel header 3" key="3">
|
|
|
|
|
<p>{text}</p>
|
|
|
|
|
</Panel>
|
|
|
|
|
</Collapse>;
|
|
|
|
|
```
|
|
|
|
|
|
2022-11-09 12:28:04 +08:00
|
|
|
|
## 代码演示
|
|
|
|
|
|
2022-11-17 17:31:26 +08:00
|
|
|
|
<!-- prettier-ignore -->
|
2022-11-09 12:28:04 +08:00
|
|
|
|
<code src="./demo/basic.tsx">折叠面板</code>
|
2023-01-21 18:45:09 +08:00
|
|
|
|
<code src="./demo/size.tsx">面板尺寸</code>
|
2022-11-09 12:28:04 +08:00
|
|
|
|
<code src="./demo/accordion.tsx">手风琴</code>
|
|
|
|
|
<code src="./demo/mix.tsx">面板嵌套</code>
|
|
|
|
|
<code src="./demo/borderless.tsx">简洁风格</code>
|
|
|
|
|
<code src="./demo/custom.tsx">自定义面板</code>
|
|
|
|
|
<code src="./demo/noarrow.tsx">隐藏箭头</code>
|
|
|
|
|
<code src="./demo/extra.tsx">额外节点</code>
|
|
|
|
|
<code src="./demo/ghost.tsx">幽灵折叠面板</code>
|
|
|
|
|
<code src="./demo/collapsible.tsx">可折叠触发区域</code>
|
2023-08-14 19:19:32 +08:00
|
|
|
|
<code src="./demo/component-token.tsx" debug>组件 Token</code>
|
2022-11-09 12:28:04 +08:00
|
|
|
|
|
2015-07-11 10:17:58 +08:00
|
|
|
|
## API
|
|
|
|
|
|
2023-08-08 18:27:48 +08:00
|
|
|
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
|
|
|
|
2015-07-11 10:17:58 +08:00
|
|
|
|
### Collapse
|
|
|
|
|
|
2022-11-17 17:31:26 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
|
|
|
|
| accordion | 手风琴模式 | boolean | false | |
|
2024-07-23 22:22:24 +08:00
|
|
|
|
| activeKey | 当前激活 tab 面板的 key | string\[] \| string <br/> number\[] \| number | [手风琴模式](#collapse-demo-accordion)下默认第一个元素 | |
|
2022-11-17 17:31:26 +08:00
|
|
|
|
| bordered | 带边框风格的折叠面板 | boolean | true | |
|
|
|
|
|
| collapsible | 所有子面板是否可折叠或指定可折叠触发区域 | `header` \| `icon` \| `disabled` | - | 4.9.0 |
|
|
|
|
|
| defaultActiveKey | 初始化选中面板的 key | string\[] \| string<br/> number\[] \| number | - | |
|
|
|
|
|
| destroyInactivePanel | 销毁折叠隐藏的面板 | boolean | false | |
|
|
|
|
|
| expandIcon | 自定义切换图标 | (panelProps) => ReactNode | - | |
|
|
|
|
|
| expandIconPosition | 设置图标位置 | `start` \| `end` | - | 4.21.0 |
|
|
|
|
|
| ghost | 使折叠面板透明且无边框 | boolean | false | 4.4.0 |
|
2023-01-21 18:45:09 +08:00
|
|
|
|
| size | 设置折叠面板大小 | `large` \| `middle` \| `small` | `middle` | 5.2.0 |
|
2022-11-17 17:31:26 +08:00
|
|
|
|
| onChange | 切换面板的回调 | function | - | |
|
2024-08-27 14:07:25 +08:00
|
|
|
|
| items | 折叠项目内容 | [ItemType](#ItemType) | - | 5.6.0 |
|
|
|
|
|
|
|
|
|
|
### ItemType
|
|
|
|
|
|
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
|
|
|
|
| classNames | 语义化结构 className | [`Record<header \| body, string>`](#semantic-dom) | - | 5.21.0 |
|
|
|
|
|
| collapsible | 是否可折叠或指定可折叠触发区域 | `header` \| `icon` \| `disabled` | - | |
|
|
|
|
|
| children | body 区域内容 | ReactNode | - | |
|
|
|
|
|
| extra | 自定义渲染每个面板右上角的内容 | ReactNode | - | |
|
|
|
|
|
| forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
|
|
|
|
|
| key | 对应 activeKey | string \| number | - | |
|
|
|
|
|
| label | 面板标题 | ReactNode | - | - |
|
|
|
|
|
| showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
|
|
|
|
|
| styles | 语义化结构 style | [`Record<header \| body, CSSProperties>`](#semantic-dom) | - | 5.21.0 |
|
2015-07-11 10:17:58 +08:00
|
|
|
|
|
|
|
|
|
### Collapse.Panel
|
|
|
|
|
|
2024-01-05 10:12:22 +08:00
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
|
:::info{title=已废弃}
|
|
|
|
|
版本 >= 5.6.0 时请使用 items 方式配置面板。
|
|
|
|
|
:::
|
2023-05-25 10:19:56 +08:00
|
|
|
|
|
2022-11-17 17:31:26 +08:00
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
|
|
|
| --- | --- | --- | --- | --- |
|
|
|
|
|
| collapsible | 是否可折叠或指定可折叠触发区域 | `header` \| `icon` \| `disabled` | - | 4.9.0 (icon: 4.24.0) |
|
|
|
|
|
| extra | 自定义渲染每个面板右上角的内容 | ReactNode | - | |
|
2024-08-27 14:07:25 +08:00
|
|
|
|
| forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
|
|
|
|
|
| header | 面板标题 | ReactNode | - | |
|
2022-11-17 17:31:26 +08:00
|
|
|
|
| key | 对应 activeKey | string \| number | - | |
|
2024-08-27 14:07:25 +08:00
|
|
|
|
| showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
|
|
|
|
|
|
|
|
|
|
## Semantic DOM
|
|
|
|
|
|
|
|
|
|
<code src="./demo/_semantic.tsx" simplify="true"></code>
|
2023-04-11 10:25:24 +08:00
|
|
|
|
|
2023-08-30 23:02:35 +08:00
|
|
|
|
## 主题变量(Design Token)
|
2023-04-11 10:25:24 +08:00
|
|
|
|
|
|
|
|
|
<ComponentTokenTable component="Collapse"></ComponentTokenTable>
|