Компонент Popover
перекрывает весь экран (position:fixed; left:0; top:0; right:0; bottom:0; z-index:1300
), эффективно блокируя любые события мыши от нижних элементов.
Вы можете попытаться обойти это, например, добавив pointer-events:none;
к своему элементу наложения позволил бы событиям курсора проходить через него.
Но использование компонента, блокирующего весь видовой экран только для небольшого пункта меню, кажется мне странным и, вероятно, тяжелым сражением.
Существует аналогичный компонент в той же библиотеке под названием Popper
, который, вероятно, больше соответствует вашим потребностям. Здесь вы можете видеть, что я преобразовал ваш Popover
в Popper
, и вы получите результаты, немного больше, чем вы ожидаете. (Обратите внимание, что я добавил немного CSS к этому элементу в изолированной программной среде кода, чтобы сделать его более понятным.)
<Popper
open={isPopoverOpen}
onClose={handleClose}
anchorEl={popoverAnchorElement}
className="popper-item"
>
<ListItem button>
<ListItemText>ListItemInPopover</ListItemText>
</ListItem>
</Popper>
https://codesandbox.io/s/keen-smoke-x8tu7
Я отмечу, что В документации отмечается, что Popper
не будет автоматически закрываться, если вы щелкнете по этим элементам, но это можно добавить.
Вы также можете заглянуть в компонент MenuList
, который использует Popper
под капотом. но также обрабатывает некоторое состояние для вас.