Вы проверяли раздел «Взаимодействие при наведении мыши» на https://material-ui.com/components/popover/?
Я не вижу остальной части вашего кода, поэтому сложно дать совет относительно точных изменений, которые вы нужно сделать, но ваше решение немного отличается от примера:
<Typography
aria-owns={open ? 'mouse-over-popover' : undefined}
aria-haspopup="true"
onMouseEnter={handlePopoverOpen}
onMouseLeave={handlePopoverClose}
>
Hover with a Popover.
</Typography>
ДОБАВЛЕНО:
После просмотра всего кода я внесу следующие изменения:
- Сделайте ваш
tableData
массив массивом объектов, а не массивом массивов
const tableData = [{name: "Nick", age: 15}, {name: "George", age: 10}, {name: "John", age: 11}];
Измените свой код внутри
tableBody
, чтобы отразить это
<TableBody>
{tableData.map(data => {
return (
<TableRow
key={data.name}
hover={true}
aria-haspopup="true"
onMouseOver={handlePopoverOpen}
onMouseOut={handlePopoverClose}
>
<TableCell>{data.name}</TableCell>
<TableCell>{data.age}</TableCell>
</TableRow>
)
})}
</TableBody>
ПРИМЕЧАНИЕ: key
должно быть уникальным, поэтому повторяющихся имен не должно быть. Лучший вариант - добавить уникальный id
к объекту и использовать его в качестве ключа.
{id: 1, name: "Nick", age: 15}
Затем протестируйте всплывающее окно!