You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Material UI中使用onClose替代已废弃disableBackdropClick的实现方法

代码修改方案

onClose回调接收两个参数,第二个参数reason表示触发关闭行为的来源,可选值为backdropClick(点击背景触发)和escapeKeyDown(按下ESC键触发),你可以通过判断该参数拦截不需要的关闭逻辑。

你原有代码同时禁用了点击背景关闭和ESC键关闭,修改后的完整代码如下:

<Dialog
  open={open}
  data-testid="myTestDialog"
  onClose={(_, reason) => {
    // 仅非点击背景、非ESC触发的关闭场景才执行关闭操作
    if (reason !== 'backdropClick' && reason !== 'escapeKeyDown') {
      // 这里替换为你自己的关闭状态更新逻辑即可
      setOpen(false);
    }
  }}
>

如果你仅需要禁用点击背景关闭,保留ESC键关闭能力,调整判断条件即可:

onClose={(_, reason) => {
  if (reason !== 'backdropClick') {
    setOpen(false);
  }
}}

内容的提问来源于stack exchange,提问作者OnePiece

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:48:00