2016-08-11 11:41:06 +08:00
---
2016-11-09 14:43:32 +08:00
type: Feedback
2016-08-11 11:41:06 +08:00
category: Components
2016-09-21 11:28:38 +08:00
title: Modal
2016-08-11 11:41:06 +08:00
---
Modal dialogs.
2016-09-10 13:43:30 +08:00
## When To Use
2016-08-11 11:41:06 +08:00
2017-09-11 11:08:18 +08:00
When requiring users to interact with the application, but without jumping to a new page and interrupting
the user's workflow, you can use `Modal` to create a new floating layer over the current page to get user
feedback or display information.
2017-05-16 10:43:12 +08:00
Additionally, if you need show a simple confirmation dialog, you can use `antd.Modal.confirm()` ,
2016-08-11 11:41:06 +08:00
and so on.
## API
2017-10-25 10:25:44 +08:00
| Property | Description | Type | Default |
| -------- | ----------- | ---- | ------- |
2017-01-05 12:06:27 +08:00
| afterClose | Specify a function that will be called when modal is closed completely. | function | - |
2017-10-25 10:25:44 +08:00
| bodyStyle | Body style for modal body element. Such as height, padding etc. | object | {} |
| cancelText | Text of the Cancel button | string | `Cancel` |
2018-07-31 17:05:07 +08:00
| centered | Centered Modal | Boolean | `false` |
2017-10-25 10:25:44 +08:00
| closable | Whether a close (x) button is visible on top right of the modal dialog or not | boolean | true |
| confirmLoading | Whether to apply loading visual effect for OK button or not | boolean | false |
2017-12-28 16:26:03 +08:00
| destroyOnClose | Whether to unmount child compenents on onClose | boolean | false |
2017-10-25 10:25:44 +08:00
| footer | Footer content, set as `footer={null}` when you don't need default buttons | string\|ReactNode | OK and Cancel buttons |
2017-05-24 10:00:59 +08:00
| getContainer | Return the mount node for Modal | (instance): HTMLElement | () => document.body |
2017-10-25 10:25:44 +08:00
| mask | Whether show mask or not. | Boolean | true |
| maskClosable | Whether to close the modal dialog when the mask (area outside the modal) is clicked | boolean | true |
| maskStyle | Style for modal's mask element. | object | {} |
| okText | Text of the OK button | string | `OK` |
| okType | Button `type` of the OK button | string | `primary` |
2018-06-22 19:56:42 +08:00
| okButtonProps | The ok button props | [ButtonProps ](/components/button ) | - |
| cancelButtonProps | The cancel button props | [ButtonProps ](/components/button ) | - |
2017-10-25 10:25:44 +08:00
| style | Style of floating layer, typically used at least for adjusting the position. | object | - |
| title | The modal dialog's title | string\|ReactNode | - |
| visible | Whether the modal dialog is visible or not | boolean | false |
| width | Width of the modal dialog | string\|number | 520 |
| wrapClassName | The class name of the container of the modal dialog | string | - |
2017-09-11 11:08:18 +08:00
| zIndex | The `z-index` of the Modal | Number | 1000 |
2017-12-29 20:22:58 +08:00
| onCancel | Specify a function that will be called when a user clicks mask, close button on top right or Cancel button | function(e) | - |
2017-10-25 10:25:44 +08:00
| onOk | Specify a function that will be called when a user clicks the OK button | function(e) | - |
2017-12-28 16:26:03 +08:00
#### Note
2017-12-29 20:22:58 +08:00
> The state of Modal will be preserved at it's component lifecycle by default, if you wish to open it with a brand new state everytime, set `destroyOnClose` on it.
2017-08-06 00:04:25 +08:00
2017-05-16 10:43:12 +08:00
### Modal.method()
2016-08-11 11:41:06 +08:00
There are five ways to display the information based on the content's nature:
- `Modal.info`
- `Modal.success`
- `Modal.error`
- `Modal.warning`
- `Modal.confirm`
2016-11-16 21:33:37 +08:00
The items listed above are all functions, expecting a settings object as parameter.
2016-09-01 18:12:12 +08:00
The properties of the object are follows:
2016-08-11 11:41:06 +08:00
2017-10-25 10:25:44 +08:00
| Property | Description | Type | Default |
| -------- | ----------- | ---- | ------- |
| cancelText | Text of the Cancel button | string | `Cancel` |
2018-07-31 17:05:07 +08:00
| centered | Centered Modal | Boolean | `false` |
2018-01-05 21:41:02 +08:00
| className | className of container | string | - |
2017-10-25 10:25:44 +08:00
| content | Content | string\|ReactNode | - |
| iconType | Icon `type` of the Icon component | string | `question-circle` |
2018-06-24 17:09:18 +08:00
| keyboard | Whether support press esc to close | Boolean | true |
2017-10-25 10:25:44 +08:00
| maskClosable | Whether to close the modal dialog when the mask (area outside the modal) is clicked | Boolean | `false` |
| okText | Text of the OK button | string | `OK` |
| okType | Button `type` of the OK button | string | `primary` |
| title | Title | string\|ReactNode | - |
| width | Width of the modal dialog | string\|number | 416 |
2017-09-11 11:08:18 +08:00
| zIndex | The `z-index` of the Modal | Number | 1000 |
2017-10-25 10:25:44 +08:00
| onCancel | Specify a function that will be called when the user clicks the Cancel button. The parameter of this function is a function whose execution should include closing the dialog. You can also just return a promise and when the promise is resolved, the modal dialog will also be closed | function | - |
| onOk | Specify a function that will be called when the user clicks the OK button. The parameter of this function is a function whose execution should include closing the dialog. You can also just return a promise and when the promise is resolved, the modal dialog will also be closed | function | - |
2016-08-11 11:41:06 +08:00
2017-09-11 11:08:18 +08:00
All the `Modal.method` s will return a reference, and then we can close the modal dialog by the reference.
2017-05-16 10:43:12 +08:00
```jsx
const ref = Modal.info();
ref.destroy();
```
2016-08-11 11:41:06 +08:00
< style >
.code-box-demo .ant-btn {
margin-right: 8px;
}
< / style >