Alert 警告组件 #

基本用法 #

jsx
import {
  Alert,
  AlertIcon,
  AlertTitle,
  AlertDescription,
} from '@chakra-ui/react'

function Example() {
  return (
    <Alert status="error">
      <AlertIcon />
      <AlertTitle>错误!</AlertTitle>
      <AlertDescription>您的账户余额不足。</AlertDescription>
    </Alert>
  )
}

状态类型 #

jsx
<Alert status="error">
  <AlertIcon />
  <AlertTitle>错误</AlertTitle>
</Alert>

<Alert status="success">
  <AlertIcon />
  <AlertTitle>成功</AlertTitle>
</Alert>

<Alert status="warning">
  <AlertIcon />
  <AlertTitle>警告</AlertTitle>
</Alert>

<Alert status="info">
  <AlertIcon />
  <AlertTitle>信息</AlertTitle>
</Alert>

变体 #

jsx
<Alert status="success" variant="subtle">
  <AlertIcon />
  <AlertTitle>柔和变体</AlertTitle>
</Alert>

<Alert status="success" variant="solid">
  <AlertIcon />
  <AlertTitle>实心变体</AlertTitle>
</Alert>

<Alert status="success" variant="left-accent">
  <AlertIcon />
  <AlertTitle>左侧强调变体</AlertTitle>
</Alert>

<Alert status="success" variant="top-accent">
  <AlertIcon />
  <AlertTitle>顶部强调变体</AlertTitle>
</Alert>

实用示例 #

可关闭警告 #

jsx
function ClosableAlert() {
  const [isVisible, setIsVisible] = useState(true)

  if (!isVisible) return null

  return (
    <Alert status="info" variant="subtle">
      <AlertIcon />
      <AlertTitle>提示</AlertTitle>
      <AlertDescription>这是一条重要信息。</AlertDescription>
      <CloseButton
        position="absolute"
        right="8px"
        top="8px"
        onClick={() => setIsVisible(false)}
      />
    </Alert>
  )
}

带操作的警告 #

jsx
<Alert status="warning" variant="subtle" flexDirection="column" alignItems="flex-start">
  <HStack>
    <AlertIcon />
    <AlertTitle>存储空间不足</AlertTitle>
  </HStack>
  <AlertDescription mt={2}>
    您的存储空间即将用完,请升级套餐或清理文件。
  </AlertDescription>
  <Button size="sm" colorScheme="yellow" mt={3}>
    升级套餐
  </Button>
</Alert>

Alert 属性速查表 #

属性 说明
status 状态 error, success, warning, info
variant 变体 subtle, solid, left-accent, top-accent

下一步 #

现在你已经掌握了 Alert 组件,接下来学习 Toast 消息提示,了解如何使用全局消息提示!

最后更新:2026-03-28