Skip to Content
文档

提示框

用于向用户显示临时消息

SourceStorybookRecipeArk

设置

¥Setup

如果你还没有该代码片段,请运行以下命令添加 toaster 代码片段。

¥If you don't already have the snippet, run the following command to add the toaster snippet

npx @chakra-ui/cli snippet add toaster

该代码片段包含 Toast 组件的封闭组件组合。

¥The snippet includes a closed component composition for the Toast component.

用法

¥Usage

import { Toaster, toaster } from "@/components/ui/toaster"

首先,在你的应用中渲染 Toaster 组件。

¥First, render the Toaster component in your app.

<Toaster />

然后,通过调用 toaster 函数创建一个 Toast。

¥Then, create a toast by calling the toaster function.

toaster.create({
  title: "Toast Title",
  description: "Toast Description",
})

示例

¥Examples

可关闭的 Toast

¥Closable Toast

closable 属性设置为 true 可创建可关闭的提示框。

¥Set the closable prop to true to create a closable toast.

外部关闭

¥External Close

使用 toaster.dismiss 方法关闭提示框。

¥Use the toaster.dismiss method to close a toast.

  • toaster.dismiss(id):通过其 ID 关闭提示框。

  • toaster.dismiss():关闭所有提示框。

类型

¥Types

以下是每种吐司的示例。

¥Here's an example of each type of toast.

包含动作

¥With Action

使用 actionactionLabel 属性,在提示框中添加操作。

¥Use the action and actionLabel prop to add an action to the toast.

点击操作触发器时,toast 将会关闭。

持久提示框

¥Persistent Toast

type 属性设置为 "loading" 可创建持久的提示框。

¥Set the type prop to "loading" to create a persistent toast.

Promise

使用 toaster.promise 创建一个在 Promise 解析后解析的 Toast。

¥Use the toaster.promise to create a toast that resolves when the promise is resolved.

接下来,你可以为 Promise 的每个状态定义提示框选项(标题、描述等)。

¥Next, you can define the toast options (title, description, etc.) for each state of the promise.

更新

¥Update

使用 toaster.update(...) 修改可见的 Toast。

¥Use toaster.update(...) to modify a visible toast.

自定义时长

¥Custom Duration

使用 duration 属性设置提示框的持续时间。

¥Use the duration prop to set the duration of the toast.

暂停和播放

¥Pause and Play

使用 toaster 对象上的 pauseresume 方法暂停和播放提示框。

¥Use the pause and resume methods on the toaster object to pause and play the toast.

暂停 Toast 消息可防止其超时,而恢复 Toast 消息将使用剩余时长重新启用超时。

¥Pausing a toast prevents it from timing out, while resuming it will reenable the timeout using the remaining duration.

生命周期

¥Lifecycle

使用 toaster 函数上的 onStatusChange 属性来监听提示框状态的变化。

¥Use the onStatusChange prop on the toaster function to listen for changes to the toast's status.

最大可见 Toast 数量

¥Maximum Visible Toasts

createToaster 函数上设置 max 属性以定义可同时渲染的最大 toast 数量。当 Toast 被关闭时,任何额外的 Toast 都会被排队渲染。

¥Set the max prop on the createToaster function to define the maximum number of toasts that can be rendered at any one time. Any extra toasts will be queued and rendered when a toast has been dismissed.

@/components/ui/toaster.tsx

const toaster = createToaster({
  max: 3,
})

放置位置

¥Placement

Toast 可以显示在页面的四个角落。我们建议你选择一个所需的位置并在 createToaster 函数中进行配置。

¥Toasts can be displayed on all four corners of a page. We recommend picking one desired position and configure it in the createToaster function.

@/components/ui/toaster.tsx

const toaster = createToaster({
  placement: "top-end",
})

重叠提示框

¥Overlapping Toasts

默认情况下,提示框会堆叠在一起。要使提示框相互重叠,请在 createToaster 函数中将 overlap 属性设置为 true

¥By default, toasts are stacked on top of each other. To make the toasts overlap each other, set the overlap prop to true in the createToaster function.

@/components/ui/toaster.tsx

const toaster = createToaster({
  placement: "top-end",
  overlap: true,
})

页面空闲行为

¥Page Idle Behavior

页面空闲/隐藏时暂停 Toast 计时器。

¥Pause toast timers when the page is idle/hidden.

@/components/ui/toaster.tsx

const toaster = createToaster({
  pauseOnPageIdle: true,
})

偏移

¥Offset

createToaster 函数中设置 offsets 属性,以使提示框偏离屏幕边缘。

¥Set the offsets prop in the createToaster function to offset the toasts from the edges of the screen.

@/components/ui/toaster.tsx

const toaster = createToaster({
  offsets: "20px",
})

或者,你可以使用 offsets 属性设置屏幕每个边缘的偏移量。

¥Alternatively, you can use the offsets prop to set the offset for each edge of the screen.

@/components/ui/toaster.tsx

const toaster = createToaster({
  offsets: { left: "20px", top: "20px", right: "20px", bottom: "20px" },
})

属性

¥Props

烤面包机

¥Toaster

根元素

¥Root

PropDefaultType
as
React.ElementType

The underlying element to render.

asChild
boolean

Use the provided child element as the default rendered element, combining their props and behavior.

For more details, read our Composition guide.
unstyled
boolean

Whether to remove the component's style.

标题

¥Title

PropDefaultType
as
React.ElementType

The underlying element to render.

asChild
boolean

Use the provided child element as the default rendered element, combining their props and behavior.

For more details, read our Composition guide.

描述

¥Description

PropDefaultType
as
React.ElementType

The underlying element to render.

asChild
boolean

Use the provided child element as the default rendered element, combining their props and behavior.

For more details, read our Composition guide.

ActionTrigger

PropDefaultType
as
React.ElementType

The underlying element to render.

asChild
boolean

Use the provided child element as the default rendered element, combining their props and behavior.

For more details, read our Composition guide.

CloseTrigger

PropDefaultType
as
React.ElementType

The underlying element to render.

asChild
boolean

Use the provided child element as the default rendered element, combining their props and behavior.

For more details, read our Composition guide.

Previous

状态

Next

头像