useToaster
useToaster 是一个用于创建和管理 Toast 的 React Hook。
使用
安装 CustomProvider
您需要做的第一件事是在应用程序的根目录下安装 CustomProvider, 用于管理 Toast 的渲染容器。
import { CustomProvider } from 'rsuite';
function App({ children }) {
return <CustomProvider>{children}</CustomProvider>;
}使用 useToaster
import { useToaster, Message, Notification } from 'rsuite';
function MyApp() {
const toaster = useToaster();
// 显示一个消息
toaster.push(<Message>message</Message>);
// 显示一个通知
toaster.push(<Notification>notification</Notification>);
}演示
与 Message 组合
展示如何将 Toaster 与 Message 组件结合使用,显示临时消息通知。
与 Notification 组合
展示如何将 Toaster 与 Notification 组件结合使用,显示更丰富的通知内容。
自定义 Toast
展示如何创建自定义样式的 Toast 消息,包括自定义内容和样式。
自定义容器
演示如何将 Toast 消息渲染到指定的 DOM 容器中,而不是默认的 body。
API
useToaster()
返回一个包含以下方法的对象:
| 方法 | 类型 | 描述 |
|---|---|---|
| push | (message: ReactNode, options?: ToastOptions) => string | 显示一个 Toast 消息 |
| remove | (toastId: string) => void | 删除指定 ID 的消息 |
| clear | () => void | 清除所有消息 |
类型定义
ToastOptions
interface ToastOptions {
/**
* 设置消息出现在指定的容器中
* @default document.body
*/
container?: HTMLElement | (() => HTMLElement);
/**
* 自动关闭消息前等待的毫秒数
* @default 4500
*/
duration?: number;
/**
* 鼠标移入时是否重置自动关闭计时器
* @default true
* @version 5.65.0
*/
mouseReset?: boolean;
/**
* 设置消息出现的位置
* @default 'topCenter'
*/
placement?: 'topCenter' | 'topStart' | 'topEnd' | 'bottomCenter' | 'bottomStart' | 'bottomEnd';
}