[material-ui][Popover] 如何不使点击离开事件关闭它?

h7wcgrx3  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(40)

重复问题

  • 我搜索了现有的问题

最新版本

  • 我测试了最新版本

总结💡

我希望弹出窗口在点击外部区域时不会关闭,以便用户可以选择是否在外部点击时关闭它。

示例🌈

  • 无响应*

动机🔦

  • 无响应*
jfewjypa

jfewjypa1#

Popover是基于Modal构建的,它们都有自己的观点。
我建议你使用更低级的Popper: https://mui.com/material-ui/react-popper/

fkaflof6

fkaflof62#

所以,@mj12albert 建议你无法在点击外部时阻止mui弹出窗口的关闭,因为你想要对已经存在的组件进行增强,而不想引入新的属性。Popover使用anchorOrigintransformOrigin来实现相对位置,但Popper有一个placement属性可以实现相同的功能。这对我们来说将是一个破坏性更改。

你能做类似以下的事情吗?

好吧,像这样应该可以工作 -

const handleClose = (event: any, reason: 'backdropClick' | 'escapeKeyDown'): void => {
        if (reason === 'backdropClick' && disableOutsideClickClose) {
            return;
        }
        if (props.onClose) {
            props.onClose(event, reason);
        }
        setShowPopover(false);
    };

相关问题