mirror of
https://gitee.com/ant-design/ant-design.git
synced 2024-12-03 04:30:06 +08:00
a6bfb84993
* feat: Drawer support drawerRender * feat: add test
4.9 KiB
4.9 KiB
group | category | title | subtitle | description | cover | coverDark | demo | ||
---|---|---|---|---|---|---|---|---|---|
反馈 | Components | Drawer | 抽屉 | 屏幕边缘滑出的浮层面板。 | https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*BD2JSKm8I-kAAAAAAAAAAAAADrJ8AQ/original | https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*r29rQ51bNdwAAAAAAAAAAAAADrJ8AQ/original |
|
何时使用
抽屉从父窗体边缘滑入,覆盖住部分父窗体内容。用户在抽屉内操作时不必离开当前任务,操作完成后,可以平滑地回到原任务。
- 当需要一个附加的面板来控制父窗体内容,这个面板在需要时呼出。比如,控制界面展示样式,往界面中添加内容。
- 当需要在当前任务流中插入临时任务,创建或预览附加内容。比如展示协议条款,创建子对象。
开发者注意事项:
自
5.17.0
版本,我们提供了loading
属性,内置 Spin 组件作为加载状态,但是自5.18.0
版本开始,我们修复了设计失误,将内置的 Spin 组件替换成了 Skeleton 组件,同时收窄了loading
api 的类型范围,只能接收 boolean 类型。
代码演示
基础抽屉
自定义位置
加载中
额外操作
渲染在当前 DOM
抽屉表单
信息预览抽屉
多层抽屉
预设宽度
自定义内部样式
ConfigProvider
无遮罩
_InternalPanelDoNotUseOrYouWillBeFired
滚动锁定调试
组件 Token
API
通用属性参考:通用属性
:::info{title=注意}
v5 使用 rootClassName
与 rootStyle
来配置最外层元素样式。原 v4 className
与 style
改至配置 Drawer 窗体样式以和 Modal 对齐。
:::
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
autoFocus | 抽屉展开后是否将焦点切换至其 DOM 节点 | boolean | true | 4.17.0 |
afterOpenChange | 切换抽屉时动画结束后的回调 | function(open) | - | |
className | Drawer 容器外层 className 设置,如果需要设置最外层,请使用 rootClassName | string | - | |
classNames | 语义化结构 className | Record<SemanticDOM, string> | - | 5.10.0 |
closeIcon | 自定义关闭图标。5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
ReactNode | <CloseOutlined /> | |
destroyOnClose | 关闭时销毁 Drawer 里的子元素 | boolean | false | |
extra | 抽屉右上角的操作区域 | ReactNode | - | 4.17.0 |
footer | 抽屉的页脚 | ReactNode | - | |
forceRender | 预渲染 Drawer 内元素 | boolean | false | |
getContainer | 指定 Drawer 挂载的节点,并在容器内展现,false 为挂载在当前位置 |
HTMLElement | () => HTMLElement | Selectors | false | body | |
height | 高度,在 placement 为 top 或 bottom 时使用 |
string | number | 378 | |
keyboard | 是否支持键盘 esc 关闭 | boolean | true | |
mask | 是否展示遮罩 | boolean | true | |
maskClosable | 点击蒙层是否允许关闭 | boolean | true | |
placement | 抽屉的方向 | top | right | bottom | left |
right |
|
push | 用于设置多层 Drawer 的推动行为 | boolean | { distance: string | number } | { distance: 180 } | 4.5.0+ |
rootStyle | 可用于设置 Drawer 最外层容器的样式,和 style 的区别是作用节点包括 mask |
CSSProperties | - | |
size | 预设抽屉宽度(或高度),default 378px 和 large 736px |
'default' | 'large' | 'default' | 4.17.0 |
style | 设计 Drawer 容器样式,如果你只需要设置内容部分请使用 bodyStyle |
CSSProperties | - | |
styles | 语义化结构 style | Record<SemanticDOM, CSSProperties> | - | 5.10.0 |
title | 标题 | ReactNode | - | |
loading | 显示骨架屏 | boolean | false | 5.17.0 |
open | Drawer 是否可见 | boolean | - | |
width | 宽度 | string | number | 378 | |
zIndex | 设置 Drawer 的 z-index |
number | 1000 | |
onClose | 点击遮罩层或左上角叉或取消按钮的回调 | function(e) | - | |
drawerRender | 自定义渲染抽屉 | (node: ReactNode) => ReactNode | - | 5.19.0 |