使用高级 Chakra UI 组件,更快地构建应用程序 💎

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

二维码

一个基于提供的数据生成二维码的组件。

源码Storybook方案Ark

用法

import { QrCode } from "@chakra-ui/react"
<QrCode.Root value="...">
  <QrCode.Frame>
    <QrCode.Pattern />
  </QrCode.Frame>
</QrCode.Root>
信息
如果您更喜欢封闭式的组件组合,请查看下面的代码片段

示例

尺寸

使用 size 属性来设置二维码的尺寸。

Logo 叠加

将 `children` 属性传递给 QrCode.Overlay 组件,以在二维码中添加 Logo 或叠加层。

填充

使用 fill 属性来设置二维码的填充颜色。

下载

使用 QrCode.DownloadTrigger 下载二维码。

需要 fileNamemimeType 属性。

纠错

如果链接过长或 Logo 叠加层覆盖了很大区域,可以提高纠错级别。

使用 encoding.eccencoding.boostEcc 属性来设置纠错级别

  • L:允许恢复高达 7% 的数据丢失(默认)
  • M:允许恢复高达 15% 的数据丢失
  • Q:允许恢复高达 25% 的数据丢失
  • H:允许恢复高达 30% 的数据丢失

存储

`RootProvider` 组件为二维码提供上下文。

它接受 useQrCode Hook 的值。您可以利用它从二维码外部访问组件状态和方法。

输入

这是一个将 QrCode 组件与 Input 组件一起使用的示例。

加载指示器

这是一个将 QrCode 组件与 Spinner 组件一起使用的示例。

封闭式组件

以下是如何为封闭式组件组合设置二维码。

import { QrCode as ChakraQrCode } from "@chakra-ui/react"
import * as React from "react"

export interface QrCodeProps
  extends Omit<ChakraQrCode.RootProps, "fill" | "overlay"> {
  fill?: string
  overlay?: React.ReactNode
}

export const QrCode = React.forwardRef<HTMLDivElement, QrCodeProps>(
  function QrCode(props, ref) {
    const { children, fill, overlay, ...rest } = props
    return (
      <ChakraQrCode.Root ref={ref} {...rest}>
        <ChakraQrCode.Frame style={{ fill }}>
          <ChakraQrCode.Pattern />
        </ChakraQrCode.Frame>
        {overlay}
        {children && <ChakraQrCode.Overlay>{children}</ChakraQrCode.Overlay>}
      </ChakraQrCode.Root>
    )
  },
)

如果您想自动将封闭式组件添加到您的项目,请运行以下命令

npx @chakra-ui/cli snippet add qr-code

属性

根组件

属性默认值类型
colorPalette 'gray'
'gray' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue' | 'cyan' | 'purple' | 'pink'

组件的调色板

size 'md'
'2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'

组件的尺寸

asChild
boolean

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

更多详情,请阅读我们的 组合 指南。
defaultValue
string

二维码首次渲染时的初始值。在您不需要控制二维码状态时使用。

encoding
QrCodeGenerateOptions

二维码编码选项。

id
string

机器的唯一标识符。

ids
Partial<{ root: string; frame: string }>

元素 ID。

onValueChange
(details: ValueChangeDetails) => void

值更改时触发的回调。

value
string

要编码的值。

DownloadTrigger

属性默认值类型
fileName *
string

文件名。

mimeType *
DataUrlType

图像的 MIME 类型。

asChild
boolean

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

更多详情,请阅读我们的 组合 指南。
quality
number

图像质量。

上一个

进度条

下一个

单选卡