微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使 React-Material-UI Popper 可拖动?

如何解决如何使 React-Material-UI Popper 可拖动?

我想用 Popper 动态改变屏幕上的 react-draggable 位置。

这是我的代码

import PopupState,{bindPopper,bindToggle} from "material-ui-popup-state";

     ...
       return (
            <PopupState variant={"popper"} popupId='demo-popper'>
            {(popupState) => {
                // popupState.anchorEl = undefined <-- THIS WORKS BUT ERROR WITH 'anchorEl' IS RAISED
                return (
                    <div>
                        <Button variant="contained" color="primary" {...bindToggle(popupState)}>
                            Toggle Popper
                        </Button>
                        <Draggable defaultPosition={position}>
                            <Popper {...bindPopper(popupState)}
                                    transition
                                    className={classes.popper}
                                    placement='bottom-start'
                            >
                                <Paper elevation={5}>
                                    <Typography variant={"h2"} className={classes.typography}>
                                        POPUP BODY
                                    </Typography>
                                </Paper>
                            </Popper>
                        </Draggable>
                    </div>
                )
            }}
        </PopupState>
      )

... 和 CODE Sandbox

如您所见,当我使 popupState.anchorEl = undefined 拖动功能有效时,会出现 anchorEl 错误

失败的道具类型:Material-UI:提供给组件的 anchorEl 道具无效。 它应该是一个 HTML 元素实例或一个 referenceObject (https://popper.js.org/docs/v1/#referenceObject)。

设置 anchorEl 时,<Draggable> 不起作用。 我认为在每个组件渲染上,由于拖动,Popup 的位置正在改变,但由于设置了 anchorEl

,它立即恢复为认值

Popper.js docs

有人知道如何解决这个问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。