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是否禁用容器的滚动 |