React Popover组件-材质用户界面

时间:2020-09-07 14:08:52

标签: javascript reactjs material-ui

我正在尝试创建一个调色板,其功能类似于:当我将鼠标悬停在PaletteIcon上时,它将弹出该调色板,并且我应该能够根据需要选择颜色。但是当我尝试选择颜色时,悬停后​​,调色板消失了。我可以在纸上添加任何属性来实现React组件吗?我检查了Paper API documentation,但没有找到任何解决方案。

这是CodeSandbox的链接。

2 个答案:

答案 0 :(得分:0)

Popover与Button不在同一棵树中,它也不是Button的后代,因此很难立即实现此逻辑。

选择颜色后,您可以删除onMouseLeave事件并关闭Popover。或者,您也可以通过单击按钮来控制弹出窗口。

或者您可以将自定义Popover添加为Button元素的子元素,因此悬停将保留在父元素上。

答案 1 :(得分:0)

TL; DR::删除pointerEvents: "none"以从弹出窗口内容中监听事件,删除锚定(Fab)onMouseLeave,并在悬停时控制弹出窗口({{1 }},onMouseEnter)的内容或弹出框的背景。

NL; PR::我修改了您的Pastebin以反映该change。另外,您可以选择使用state management API)。