跳转到内容

Message

在屏幕顶部中央显示的轻量级反馈消息。

import { message } from 'asterui'

基础消息

用于用户操作的轻量级反馈消息。

import { message, Button, Space } from 'asterui'

function App() {
  return (
      <Space direction="horizontal" size="sm" wrap>
        <Button
          color="primary"
          onClick={() => message.success('Changes saved successfully')}
        >
          Success
        </Button>
  
        <Button
          onClick={() => message.error('Failed to save changes')}
        >
          Error
        </Button>
  
        <Button
          onClick={() => message.info('New updates available')}
        >
          Info
        </Button>
  
        <Button
          onClick={() => message.warning('Session expires in 5 minutes')}
        >
          Warning
        </Button>
      </Space>
    )
}

export default App

加载消息

显示可以通过编程方式关闭的加载消息。

import { message, Button } from 'asterui'
import { useState } from 'react'

function App() {
  const [loadingId, setLoadingId] = useState<string | null>(null);
  
  const handleClick = () => {
    const id = message.loading('Processing...');
    setLoadingId(id);
  
    setTimeout(() => {
      message.destroy(id);
      message.success('Done!');
      setLoadingId(null);
    }, 2000);
  };
  
  return (
      <Button onClick={handleClick} disabled={!!loadingId}>
        {loadingId ? 'Processing...' : 'Submit'}
      </Button>
    )
}

export default App

自定义持续时间

控制消息保持可见的时间。

import { message, Button, Space } from 'asterui'

function App() {
  return (
      <Space direction="horizontal" size="sm" wrap>
        <Button
          onClick={() => message.info('Quick message', { duration: 1 })}
        >
          1 second
        </Button>
  
        <Button
          color="primary"
          onClick={() => message.info('Default duration')}
        >
          Default (3s)
        </Button>
  
        <Button
          onClick={() => message.info('Longer message', { duration: 6 })}
        >
          6 seconds
        </Button>
      </Space>
    )
}

export default App

堆叠消息

多个消息在屏幕顶部中央堆叠。

import { message, Button } from 'asterui'

function App() {
  return (
      <Button
        color="primary"
        onClick={() => {
          message.success('First message');
          setTimeout(() => message.info('Second message'), 300);
          setTimeout(() => message.warning('Third message'), 600);
        }}
      >
        Show Multiple
      </Button>
    )
}

export default App
属性描述类型默认值
content消息文本(第一个参数)React.ReactNode-
duration自动关闭持续时间(秒)number3
key唯一标识符。使用相同键更新会更新现有消息string-
icon要显示的自定义图标React.ReactNode-
className额外的 CSS 类名string-
style内联样式React.CSSProperties-
data-testid用于测试框架的测试 IDstring-
onClick点击消息时的回调() => void-
onClose消息关闭时的回调() => void-
  • 消息通过实时区域向屏幕阅读器朗读
  • 图标提供视觉提示以及颜色表示消息类型
  • 消息自动关闭但可以配置为持续存在