繁体   English   中英

单击反应图标图标时菜单未打开

[英]Menu not opening when clicking on react-icons icon

我有一个菜单,当我点击一个按钮时应该打开。 并在我再次单击该按钮或单击菜单外部时关闭。 它工作正常,但是当我单击按钮内的svg icon时出现错误,它不起作用,菜单无法打开。

 const MoreActionBtn = () => {
  const [showMoreAction, setShowMoreAction] = useState(false);
  const moreBtns = useRef();
  const { current } = moreBtns;

  useEffect(() => {
    const outSideClickHandler = (e) => {
      if (current && !current.contains(e.target)) {
        setShowMoreAction(false);
      }
    };
    document.addEventListener("click", outSideClickHandler);
    return () => {
      document.removeEventListener("click", outSideClickHandler);
    };
  }, [current]);

  function toggleMoreAcrion() {
    setShowMoreAction((prev) => !prev);
  }

  return (
    <div ref={moreBtns} className="more-action-wrapper">
      {showMoreAction && (
        <div>
          <button>
            <MdDone />
          </button>
          <button>
            <MdOutlineModeEdit />
          </button>
        </div>
      )}
      <button onClick={toggleMoreAcrion}>
        {showMoreAction ? <MdOutlineCancel /> : <MdStars />}
      </button>
    </div>
  );
};

这是我的代码的代码 有更好的解决方案吗?

似乎问题比我想象的要简单。 发生的事情是, svgreact-icons渲染的MdStar以某种方式吸引了点击。 为避免这种情况,请添加以下 CSS:

.more-action-wrapper svg {
  pointer-events: none;
}

在这里工作分叉您的 CodeSandbox。

暂无
暂无

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

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