使用高级 Chakra UI 组件更快地构建 💎

了解更多
跳到内容
文档演练场指南博客
赞助

Stat

用于显示带有标题和值的统计数据。

源码Storybook配方
独立访客
192.1k

用法

import { Stat } from "@chakra-ui/react"
<Stat.Root>
  <Stat.Label />
  <Stat.ValueText />
  <Stat.HelpText />
  <Stat.UpIndicator />
</Stat.Root>

示例

格式化选项

Stat.ValueText 中使用 FormatNumber 组件来格式化值。

营收
$935.40

指示器

这是一个显示带有指示器的统计数据的示例。

独立访客
192.1k
1.9%

信息提示

组合 InfoTipStat.Label 组件以显示信息提示。

唯一
192.1k

值单位

这是一个显示带有单位的值的示例。

完成时间
3 小时20 分钟

进度条

这是一个显示带有进度条的统计数据的示例。

本周
$1,340
比上周增加12%

图标

这是一个显示带有图标的统计数据的示例。

销售额
$4.24k

趋势

这是一个显示带有趋势指示器的统计数据的示例。

唯一
$8,456.40
12%
自上个月以来

封闭组件

这是一个如何为封闭组件组合设置 Stat 的示例。

import { Badge, Stat as ChakraStat, FormatNumber, Show } from "@chakra-ui/react"
import { InfoTip } from "@/components/ui/toggle-tip"
import * as React from "react"

interface StatProps extends ChakraStat.RootProps {
  label?: React.ReactNode
  value?: number
  info?: React.ReactNode
  valueText?: React.ReactNode
  formatOptions?: Intl.NumberFormatOptions
  change?: number
}

export const Stat = React.forwardRef<HTMLDivElement, StatProps>(
  function Stat(props, ref) {
    const { label, value, valueText, change, info, formatOptions, ...rest } =
      props
    return (
      <ChakraStat.Root {...rest}>
        {label && (
          <ChakraStat.Label>
            {label}
            {info && <InfoTip>{info}</InfoTip>}
          </ChakraStat.Label>
        )}
        <ChakraStat.ValueText {...rest} ref={ref}>
          {valueText ||
            (value != null && formatOptions && (
              <FormatNumber value={value} {...formatOptions} />
            ))}
        </ChakraStat.ValueText>
        {change != null && (
          <Badge colorPalette={change > 0 ? "green" : "red"} gap="0">
            <Show when={change > 0} fallback={<ChakraStat.DownIndicator />}>
              <ChakraStat.UpIndicator />
            </Show>
            <FormatNumber
              value={Math.abs(change)}
              style="percent"
              maximumFractionDigits={2}
            />
          </Badge>
        )}
      </ChakraStat.Root>
    )
  },
)

属性

属性默认值类型
colorPalette '灰色'
'灰色' | '红色' | '橙色' | '黄色' | '绿色' | '蓝绿色' | '蓝色' | '青色' | '紫色' | '粉色'

组件的颜色调色板

size 'md'
'sm' | 'md' | 'lg'

组件的尺寸

as
React.ElementType

要渲染的底层元素。

asChild
布尔值

使用提供的子元素作为默认渲染元素,结合它们的属性和行为。

欲了解更多详情,请阅读我们的 组合 指南。
unstyled
布尔值

是否移除组件的样式。

上一个

Spinner

下一个

Status