我正在尝试创建一个 React Material Popover(https://material-ui.com/api/popover/)元素,当用户将鼠标悬停在 TableRow 上时显示(https://material-ui.com/api/ table-row/ ),并且当用户将鼠标悬停在 TableRow 之外时隐藏。
我已经尝试过的:
const handlePopoverOpen = event => {
setAnchorEl(event.currentTarget);
};
const handlePopoverClose = event => {
setAnchorEl(null);
};
const open = Boolean(anchorEl);
. . .
<TableRow
selected={props.selected === key ? true : false}
hover={true}
key={key} className={classes.tableBodyRow}
onClick={() => props.onSelectChange(key, prop[0], prop[1])}
onMouseOver={handlePopoverOpen}
onMouseOut={handlePopoverClose}
>
. . .
<Popover
id="mouse-over-popover"
open={open}
anchorEl={anchorEl}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'center',
}}
transformOrigin={{
vertical: 'top',
horizontal: 'left',
}}
onClose={handlePopoverClose}
>
I use Popover
</Popover>
当鼠标悬停在 TableRow 上时会出现 Popover,但随后它会一直闪烁,就像存在 onMouseOver() 和 onMouseOut() 的无限循环一样。我一直在调查这个问题几个小时,我找不到这个问题的解释。如果有人可以提供帮助,我将不胜感激!
这是一个代码现场演示: https ://codesandbox.io/s/heuristic-banach-071f3?fontsize=14&hidenavigation=1&theme=dark