Notification通知提醒框

全局展示通知提醒信息。

何时使用

在系统四个角显示通知提醒信息。经常用于以下情况:

  • 较为复杂的通知内容。

  • 带有交互的通知,给出用户下一步的行动点。

  • 系统主动推送。

代码演示

Notification 通知提醒框 - 图1

基本

最简单的用法,4.5 秒后自动关闭。

  1. import { Button, notification } from 'choerodon-ui';
  2. const openNotification = () => {
  3. notification.open({
  4. message: 'Notification Title',
  5. description: 'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
  6. });
  7. };
  8. ReactDOM.render(
  9. <Button type="primary" onClick={openNotification}>Open the notification box</Button>,
  10. mountNode);

Notification 通知提醒框 - 图2

带有图标的通知提醒框

通知提醒框左侧有图标。

  1. import { Button, notification } from 'choerodon-ui';
  2. const openNotificationWithIcon = (type) => {
  3. notification[type]({
  4. message: 'Notification Title',
  5. description: 'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
  6. });
  7. };
  8. ReactDOM.render(
  9. <div>
  10. <Button onClick={() => openNotificationWithIcon('success')}>Success</Button>
  11. <Button onClick={() => openNotificationWithIcon('info')}>Info</Button>
  12. <Button onClick={() => openNotificationWithIcon('warning')}>Warning</Button>
  13. <Button onClick={() => openNotificationWithIcon('error')}>Error</Button>
  14. </div>,
  15. mountNode);

Notification 通知提醒框 - 图3

自定义图标

图标可以被自定义。

  1. import { Button, notification, Icon } from 'choerodon-ui';
  2. const openNotification = () => {
  3. notification.open({
  4. message: 'Notification Title',
  5. description: 'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
  6. icon: <Icon type="smile-circle" style={{ color: '#108ee9' }} />,
  7. });
  8. };
  9. ReactDOM.render(
  10. <Button type="primary" onClick={openNotification}>Open the notification box</Button>,
  11. mountNode);

Notification 通知提醒框 - 图4

自定义样式

使用 style 和 className 来定义样式。

  1. import { Button, notification } from 'choerodon-ui';
  2. const openNotification = () => {
  3. notification.open({
  4. message: 'Notification Title',
  5. description: 'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
  6. style: {
  7. width: 600,
  8. marginLeft: 335 - 600,
  9. },
  10. });
  11. };
  12. ReactDOM.render(
  13. <Button type="primary" onClick={openNotification}>Open the notification box</Button>,
  14. mountNode);

Notification 通知提醒框 - 图5

自动关闭的延时

自定义通知框自动关闭的延时,默认4.5s,取消自动关闭只要将该值设为 0 即可。

  1. import { Button, notification } from 'choerodon-ui';
  2. const openNotification = () => {
  3. const args = {
  4. message: 'Notification Title',
  5. description: 'I will never close automatically. I will be close automatically. I will never close automatically.',
  6. duration: 0,
  7. };
  8. notification.open(args);
  9. };
  10. ReactDOM.render(
  11. <Button type="primary" onClick={openNotification}>Open the notification box</Button>,
  12. mountNode);

Notification 通知提醒框 - 图6

自定义按钮

自定义关闭按钮的样式和文字。

  1. import { Button, notification } from 'choerodon-ui';
  2. const close = () => {
  3. console.log('Notification was closed. Either the close button was clicked or duration time elapsed.');
  4. };
  5. const openNotification = () => {
  6. const key = `open${Date.now()}`;
  7. const btn = (
  8. <Button type="primary" size="small" onClick={() => notification.close(key)}>
  9. Confirm
  10. </Button>
  11. );
  12. notification.open({
  13. message: 'Notification Title',
  14. description: 'A function will be be called after the notification is closed (automatically after the "duration" time of manually).',
  15. btn,
  16. key,
  17. onClose: close,
  18. });
  19. };
  20. ReactDOM.render(
  21. <Button type="primary" onClick={openNotification}>
  22. Open the notification box
  23. </Button>,
  24. mountNode);

Notification 通知提醒框 - 图7

位置

可以设置通知从右上角、右下角、左下角、左上角弹出。

  1. import { Button, Select, notification } from 'choerodon-ui';
  2. const { Option } = Select;
  3. const options = ['topLeft', 'topRight', 'bottomLeft', 'bottomRight'];
  4. const openNotification = () => {
  5. notification.open({
  6. message: 'Notification Title',
  7. description: 'This is the content of the notification. This is the content of the notification. This is the content of the notification.',
  8. });
  9. };
  10. ReactDOM.render(
  11. <div>
  12. <Select
  13. defaultValue="topRight"
  14. style={{ width: 120, marginRight: 10 }}
  15. onChange={(val) => {
  16. notification.config({
  17. placement: val,
  18. });
  19. }}
  20. >
  21. {options.map(val => <Option key={val} value={val}>{val}</Option>)}
  22. </Select>
  23. <Button
  24. type="primary"
  25. onClick={openNotification}
  26. >
  27. Open the notification box
  28. </Button>
  29. </div>,
  30. mountNode);

API

  • notification.success(config)

  • notification.error(config)

  • notification.info(config)

  • notification.warning(config)

  • notification.warn(config)

  • notification.close(key: String)

  • notification.destroy()

config 参数如下:

参数说明类型默认值
btn自定义关闭按钮ReactNode-
className自定义 CSS classstring-
description通知提醒内容,必选string|ReactNode-
duration默认 4.5 秒后自动关闭,配置为 null 则不自动关闭number4.5
icon自定义图标ReactNode-
key当前通知唯一标志string-
message通知提醒标题,必选string|ReactNode-
placement弹出位置,可选 topLeft topRight bottomLeft bottomRightstringtopRight
style自定义内联样式React.CSSProperties-
onClose点击默认关闭按钮时触发的回调函数Function-

还提供了一个全局配置方法,在调用前提前配置,全局一次生效。

  • notification.config(options)
  1. notification.config({
  2. placement: 'bottomRight',
  3. bottom: 50,
  4. duration: 3,
  5. });
参数说明类型默认值
bottom消息从底部弹出时,距离底部的位置,单位像素。number24
duration默认自动关闭延时,单位秒number4.5
getContainer配置渲染节点的输出位置() => HTMLNode() => document.body
placement弹出位置,可选 topLeft topRight bottomLeft bottomRightstringtopRight
top消息从顶部弹出时,距离顶部的位置,单位像素。number24