Skip to content

警告对话框

Props ​

名称类型默认值说明
isOpenboolean-对话框是否打开。必填。组件不会自行关闭,关闭请求通过 openChange 交给父组件。
isInlinebooleanfalse以普通文档流渲染表面,不使用 <dialog>、遮罩与焦点行为,仅用于文档预览。没有模态行为时根元素改用 role="group"。
titlestring-要向用户提出的问题,渲染为二级标题,并通过 aria-labelledby 为对话框命名。必填。
descriptionstring-确认之后会发生什么,通过 aria-describedby 与对话框关联。必填。
cancelLabelstring'Cancel'取消按钮的标签,渲染为 ghost 按钮。点击后发出 openChange(false)。
actionLabelstring-确认按钮的标签。写清会发生什么,例如「删除项目」。必填。
actionVariantAlertDialogActionVariant'destructive'确认按钮的视觉样式,取值与 Button 的变体一致:destructive、primary、secondary、ghost。
isActionLoadingbooleanfalse确认按钮显示加载指示,并带上 aria-busy;「取消」保持可用,对话框留在原地等待操作结束。
widthnumber | string400首选宽度,数字单位为像素,字符串原样使用。由对话框夹取到容器与动态视口之内。

事件与模板引用 ​

名称签名说明
openChange(isOpen: boolean) => void用户取消时以 false 触发:按下「取消」或按 Escape。是否关闭由父组件决定;点击遮罩与点击确认按钮都不会触发它。
action(event: MouseEvent) => void确认按钮被触发时发出。对话框不会自动关闭,请在操作结束后自行关闭。
elementHTMLElement | null根元素(模态下为 <dialog>,行内预览下为 <div>),通过模板引用暴露。
focus、blur() => void把焦点移入或移出根元素。

插槽 ​

名称说明
title标题内容,用来替换 title 属性。承载它的元素仍然带着对话命名所需的 id。
description描述内容,用来替换 description 属性。同样保留 aria-describedby 指向的 id。
actions操作区里、取消与确认按钮之前的额外内容,例如指向说明文档的链接。

useImperativeAlertDialog ​

  • show(options):以给定选项打开对话框。选项为除 isOpen 之外的全部属性,另加一个 onAction 回调。
  • hide():关闭对话框。
  • isOpen:打开状态,为可写的 ref。
  • Host:在模板中渲染一次的组件。

原生属性 ​

模态下根元素为 <dialog>,行内预览下为 <div>。

以下内容传入根元素:

  • HTML 属性。
  • aria-* 属性。
  • data-* 属性。
  • class。
  • style。

组件自己维护 role、aria-modal、aria-labelledby 与 aria-describedby,因此这些属性以组件推导出的值为准。