Drawer 抽屉
使用场景#
在不离开主路径的情况下,为用户提供快速执行操作、确认信息或反馈提示的辅助窗口。
示例#
基本用法#
noInline
弹出方向#
noInline
嵌套抽屉#
noInline
全屏抽屉#
noInline
极简样式#
设置 minimal={true} 后,抽屉只会保留最基本的样式,其余内容完全由上层进行控制。此时 title 和 footer 属性无效。
noInline
API#
| 字段 | 描述 | |
|---|---|---|
| style | CSSProperties | |
| className | string | |
| visible | boolean抽屉是否显示 | |
| onRequestClose | (reason: any) => void抽屉被关闭时的回调 | |
| placement | "top" | "bottom" | "right" | "left" = right抽屉出现的位置 | |
| title | ReactNode抽屉标题 | |
| content | ReactNode | |
| renderChildren | (pass: { ref: Ref<HTMLDivElement>; 'data-placement': "top" | "bottom" | "right" | "left"; }) => ReactNode使用 render prop 的形式指定弹层内容,用于精确控制 DOM 结构 | |
| footer | ReactNode弹窗页脚 | |
| wrapperRef | Ref<HTMLDivElement> | |
| canCloseByIcon | boolean = false是否显示对话框关闭图标 | |
| 浮层交互 | ||
| canCloseByEsc | boolean = true是否支持 esc 按键关闭弹层 | |
| canCloseByOutSideClick | boolean = true点击弹层外部区域是否关闭弹层(注意背景层也被认为是外部) | |
| 背景层 | ||
| hasBackdrop | boolean = true是否展示背景层 | |
| backdropStyle | CSSProperties | |
| backdropClassName | string | |
| 浮层生命周期 | ||
| beforeOpen | (state?: any) => Promise<IOverlayAnimationProps>浮层即将被打开时的回调 | |
| onOpen | () => void浮层打开时的回调 | |
| afterOpen | () => void浮层打开时的回调 | |
| beforeClose | () => IOverlayAnimationProps浮层即将被关闭时的回调 | |
| onClose | () => void浮层关闭时的回调 | |
| afterClose | () => void浮层关闭后的回调 | |
| 浮层动画 | ||
| animationDuration | string = 200ms动画持续时间(注意该 prop 会作为 CSS 变量的值,使用时要带上单位,例如 `'500ms'`) | |
| animation | false | { in: string | Keyframes; out: string | Keyframes; }弹层的出现和消失的动画,可以用 Overlay.animations.{name} 来引用弹层组件内置的动画效果 | |
| 浮层容器 | ||
| usePortal | boolean是否使用 portal 来渲染弹层内容 | |
| portalContainer | HTMLElement | "DOCUMENT_BODY"渲染组件的容器 | |
| disableScroll | boolean | "force" = true是否禁用容器的滚动 | |
