简体   繁体   English

如何在菜单下拉菜单中制作一个按钮?

[英]How to make one button in the menu dropdown?

I have a header which is made with MaterialUi.我有一个用 MaterialUi 制作的标头。 There are 4 menu items.有 4 个菜单项。 I need to make it so that there is a down arrow near the third item and when clicked, a submenu with new items drops out.我需要这样做,以便在第三项附近有一个向下箭头,单击时,会弹出一个包含新项目的子菜单。 How can i do this?我怎样才能做到这一点?

 const pages = ["Item1", "Item2", "Item3", "Item4"]; <Box sx={{ flexGrow: 1, display: { xs: "none", md: "flex" } }}> {pages.map((page) => ( <Button key={page} onClick={handleCloseNavMenu} sx={{ my: 2, color: "white", display: "block" }} > {page} </Button> ))} </Box>

Easily use Menu component:轻松使用Menu组件:

const pages = ["Item1", "Item2", "Item3", "Item4"];

function Test() {
  const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
  const isMenuOpen = Boolean(anchorEl);

  const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
    const name = event.currentTarget.name;
    switch (name) {
      case "Item1":
        //redirect to page 1
        break;
      case "Item2":
        //redirect to page 2
        break;
      case "Item3":
        setAnchorEl(event.currentTarget);
        break;
      case "Item4":
        //redirect to page 4
        break;
    }
  };

  const handleCloseMenu = () => {
    setAnchorEl(null);
  };

  return (
    <Box sx={{ flexGrow: 1, display: { xs: "none", md: "flex" } }}>
      {pages.map((page) => (
        <>
          <Button
            key={page}
            name={page}
            onClick={handleClick}
            sx={{ my: 2, color: "white", display: "block" }}
          >
            {page}
          </Button>
        </>
      ))}
      <Menu anchorEl={anchorEl} open={isMenuOpen} onClose={handleCloseMenu}>
        <MenuItem onClick={handleCloseMenu}>Profile</MenuItem>
        <MenuItem onClick={handleCloseMenu}>My account</MenuItem>
        <MenuItem onClick={handleCloseMenu}>Logout</MenuItem>
      </Menu>
    </Box>
  );
}
export default Test;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM