Modal 視窗
Modal 元件讓您建立對話框、彈出視窗、燈箱和其他元素,這些元素會強制使用者在繼續之前採取行動。
useModal API
匯入
import { unstable_useModal as useModal } from '@mui/base/unstable_useModal';
// or
import { unstable_useModal as useModal } from '@mui/base';
請閱讀這份關於最小化套件大小的指南,以了解差異。reading this guide on minimizing bundle size。
名稱 | 類型 | 預設值 | 描述 |
---|---|---|---|
children* | React.ReactElement<any> | undefined | null | - | 單一子內容元素。 |
open* | boolean | - | 如果為 |
rootRef* | React.Ref<Element> | - | |
closeAfterTransition | boolean | false | 當設定為 true 時,Modal 會等到巢狀轉場效果完成後才關閉。 |
container | PortalProps['container'] | - | 一個 HTML 元素或返回一個元素的函式。 |
disableEscapeKeyDown | boolean | false | 如果為 |
disableScrollLock | boolean | false | 停用滾動鎖定行為。 |
onClose | { bivarianceHack(event: {}, reason: 'backdropClick' | 'escapeKeyDown'): void }['bivarianceHack'] | - | 當元件請求關閉時觸發的回呼函式。 |
onKeyDown | React.KeyboardEventHandler | - | |
onTransitionEnter | () => void | - | 當轉場效果進入時呼叫的函式。 |
onTransitionExited | () => void | - | 當轉場效果已退出時呼叫的函式。 |
名稱 | 類型 | 描述 |
---|---|---|
exited | boolean | 如果為 |
getBackdropProps | <TOther extends EventHandlers = {}>(externalProps?: TOther) => UseModalBackdropSlotProps<TOther> | backdrop slot props 的解析器。 |
getRootProps | <TOther extends EventHandlers = {}>(externalProps?: TOther) => UseModalRootSlotProps<TOther> | root slot props 的解析器。 |
getTransitionProps | <TOther extends EventHandlers = {}>(externalProps?: TOther) => { onEnter: () => void; onExited: () => void } | 轉場效果相關 props 的解析器。 |
hasTransition | boolean | 如果為 |
isTopModal | () => boolean | 如果為 |
portalRef | React.RefCallback<Element> | null | 元件 portal DOM 元素的 ref。 |
rootRef | React.RefCallback<Element> | null | 元件 root DOM 元素的 ref。 |