用途:诊断和修复 shadcn 封装的 Radix 组件(Dialog、Sheet、Drawer、DropdownMenu、Popover、HoverCard、Select、AlertDialog、ContextMenu、Collapsible、Accordion、Tabs 等)在受控状态下出现的三类症状:无法关闭、渲染崩溃、渲染位置或焦点错误。
主要能力:总结 Radix 的状态管理契约,覆盖 open + onOpenChange 与 value + onValueChange 两套配对规则、asChild 单子节点与 forwardRef 要求、Portal 与层叠上下文冲突、焦点管理回调,并提供“为什么无法关闭”的决策树。
使用方式:对每个带 open 的组件,要么同时传入 open 和 onOpenChange(受控),要么两者都不传、用 defaultOpen 设初始值(非受控);只传 open 会使组件只读。可在 onOpenChange 中加日志追踪状态。
适用场景:Dialog/Sheet/Drawer 点 X、Esc、遮罩无法关闭;Select/Tabs 值锁死;asChild 抛 React.Children.only;Portal 内容被遮挡;表单提交成功后需 setOpen(false) 的关闭模式。
限制:资料未提供具体命令、安装步骤或价格信息。