相关疑难解决方法(0)

如何基于悬停而不是单击制作 Material-UI 菜单

我正在使用 Material-UI 菜单。它应该可以正常工作,但只需使用鼠标悬停,而不是单击。这是我的代码链接:https : //codesandbox.io/embed/vn3p5j40m0

下面是我尝试过的代码。它可以正确打开,但在鼠标移开时不会关闭。

import React from "react";
import Button from "@material-ui/core/Button";
import Menu from "@material-ui/core/Menu";
import MenuItem from "@material-ui/core/MenuItem";

function SimpleMenu() {
  const [anchorEl, setAnchorEl] = React.useState(null);

  function handleClick(event) {
    setAnchorEl(event.currentTarget);
  }

  function handleClose() {
    setAnchorEl(null);
  }

  return (
    <div>
      <Button
        aria-owns={anchorEl ? "simple-menu" : undefined}
        aria-haspopup="true"
        onClick={handleClick}
        onMouseEnter={handleClick}
      >
        Open Menu
      </Button>
      <Menu
        id="simple-menu"
        anchorEl={anchorEl}
        open={Boolean(anchorEl)}
        onClose={handleClose}
        onMouseLeave={handleClose}
      >
        <MenuItem onClick={handleClose}>Profile</MenuItem>
        <MenuItem onClick={handleClose}>My account</MenuItem>
        <MenuItem onClick={handleClose}>Logout</MenuItem>
      </Menu>
    </div>
  );
}

export default SimpleMenu;
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui

3
推荐指数
2
解决办法
7366
查看次数

鼠标悬停时打开菜单,鼠标悬停时关闭菜单

我刚刚开始与反应电镀。我目前正在使用material-ui进行我的navBar并做出反应。当我将鼠标悬停在菜单上时,将显示下拉菜单。但是为了关闭下拉菜单,我必须单击下拉菜单的外部。我希望能够在将鼠标悬停在下拉菜单之外或移至其他菜单选项(在这种情况下,应显示另一个下拉菜单)时关闭该下拉菜单。像这样的东西:https : //www.palantir.com/

我环顾四周,但找不到解决方案。这是我最近得到的:Material-ui:通过事件悬停打开菜单

我尝试使用相同的技术,并将其添加到我的代码中,但无济于事。有什么建议么?谢谢!

编辑:我在这里重新创建了我的问题:https : //react-xmaiyw.stackblitz.io 单击“为什么我们”时可以看到问题。

 handleClick = (event) => {
 event.preventDefault();

   this.setState({
    open: true,
    anchorEl: event.currentTarget,
   });
 };

handleRequestClose = () => {
  this.setState({
   open: false,
  });
};

render() {
return (
  <FlatButton
  onClick={this.handleClick}
  onMouseOver={this.handleClick}
  onMouseLeave={this.handleRequestClose} //When I add this line of 
     //code, it keeps flickering very fast almost as if drop-down 
     //doesn't open
  label="Why Us?"
/>
)}
Run Code Online (Sandbox Code Playgroud)

onmouseover onmouseout drop-down-menu reactjs material-ui

2
推荐指数
1
解决办法
7351
查看次数