reactjs - 材质 UI:使用 onMouseLeave 道具时弹出窗口中断
问题描述
除了使用鼠标悬停道具外,我在此页面上重新制作了简单的弹出框示例:
https://codesandbox.io/s/eager-dewdney-yt3v-yt3vb
<Button
variant="contained"
onMouseEnter={e => setAnchorEl(e.currentTarget)}
// onMouseLeave={() => setAnchorEl(null)}
>
只要取消注释 onMouseLeave,上面的代码沙箱就会静默中断。UI 将显示正常,但不会显示弹出框。我发现在我的实际项目中也会发生同样的情况。
评论 onMouseLeave 将至少允许 onMouseEnter 与弹出框正常工作,但它会卡在屏幕上。
我在这里没有正确使用 onMouseLeave 吗?
如果它被正确使用但似乎是与库相关的错误,那么可以使用基于鼠标的替代方法来代替上面的 onMouseLeave 吗?
解决方案
我遇到了同样的问题,我不想使用Tooltip
.
修复方法是向弹出窗口添加一个样式,以抑制在onMouseLeave()
弹出窗口打开后立即触发的附加事件:
<Popover
style={{ pointerEvents: 'none' }}
>
{children}
</Popover>
我在这里找到了修复。
推荐阅读
- jquery - 禁用/隐藏 iframe pdfviewer 中的打印和下载按钮
- django - 如何在 Django 中获取用户的活动历史记录?
- python - 如何在 Tkinter Python 中运行代码时更改图像
- apache-nifi - 如何使用 getsftp 从变量中的动态数量的服务器中提取?
- javascript - NodeJs AES 文件解密到流
- python - 在不删除 Python 数据的情况下清理时间序列异常值
- c# - 当我关闭 SqlConnection 时,它会从 SqlCommand 和 SqlDataReader 中释放资源吗?
- python - 如何加速 Keras model.predict?
- android - 不同部分的搜索栏颜色
- mysql - 将 CSV 样式的 varchar 列移动到新表中