Сначала вам нужно определить меню в перечислении / объекте
const MenuTypes = Object.freeze({
Simple: 'simple',
Profile: 'profile'
})
Добавить еще один элемент состояния для отслеживания вашего активного меню
const [activeMenu, setActiveMenu] = React.useState(null);
, затем обновить handleMenu
, чтобы принятьТип меню и установить его в состояние.Я не могу вспомнить, если menuType будет первым или вторым аргументом, поэтому проверьте это.
function handleMenu(menuType, event) {
setActiveMenu(menuType);
setAnchorEl(event.currentTarget);
}
Тогда ваши обратные вызовы кликов должны отражать правильное меню
<Button
aria-owns={anchorEl ? 'simple-menu' : undefined}
aria-haspopup="true"
onClick={handleMenu.bind(null, MenuTypes.Simple}
>
Затем вам нужно сослаться на этот тип, чтобы определить, какой из них активен в настоящее время
open={!!activeMenu && activeMenu === MenuTypes.Simple}
Не забудьте также обновить обработчик закрытия
function handleClose() {
setActiveMenu(null);
setAnchorEl(null);
}
Дайте мне знать, если что-то здесь нене имеет смысла, и я постараюсь объяснить более подробно, что смущает:)