Blackwork
回到顶部

Dialog

需要打断当前页面、完成一件短任务时用模态对话框。

Dialog

适用场景

  • 确认危险操作
  • 不离开当前页,改一组很短的字段
  • 用户必须看到的信息

如果内容应该贴着屏幕一边,或者用户还要对照后面的页面,用 Sheet

用法

触发器必须是真正的 button。DialogTrigger 建议配合 asChild

用法

结构

部件作用
Dialog打开状态
DialogTrigger打开对话框
DialogContent传送门、遮罩和面板
DialogHeader / DialogTitle / DialogDescription无障碍标题
DialogFooter操作区
DialogClose显式关闭

无障碍必须有 DialogTitleDialogContent 右上角已经带关闭按钮。

API 参考

触发器支持 asChild。DialogContent 已经包含关闭按钮。

属性类型默认值说明
asChildbooleanfalse用于 DialogTrigger 和 DialogClose,将 props 合并到真正的 button 子节点。
openbooleanDialog 的受控打开状态。
defaultOpenbooleanDialog 非受控模式的初始打开状态。
onOpenChange(open: boolean) => voidDialog 打开或关闭时调用。

说明

  • asChild 的子节点必须是 button,不要再包一层 div
  • 对话框文案要短。长表单放到页面或抽屉里。