【问题标题】:React Portal Not Working With A Tooltip ComponentReact Portal 不使用工具提示组件
【发布时间】:2022-01-24 19:06:33
【问题描述】:

我正在尝试将react-portal 与我的工具提示组件一起使用。没有错误,但它似乎不起作用:

  1. 工具提示仍被其父容器部分隐藏,overflow:hidden
  2. 我没有看到它添加到 #root 之外的新 div 中。
import { Portal } from 'react-portal';

return (
    <>
      <Wrapper
        onMouseEnter={showTip}
        onMouseLeave={hideTip}
        ref={triggerRef}
      >
        {children}
      </Wrapper>

      {render && (
        <Portal node={triggerRef.current}>
          <Content
            placement={placement}
            fade={active}
          >
            {content}
          </Content>
        </Portal>
      )}
    </>
  );

这里是Codesandbox 的完整代码。

【问题讨论】:

    标签: javascript reactjs react-portal


    【解决方案1】:

    我觉得react portal没什么问题,问题是你的风格,我对你的portal.js文件做了一点改动:

      if (typeof window === "object") {
        if (target) {
          root = document.getElementById("root");
        }
        el = document.createElement("div");
        el.setAttribute('style', 'position:relative'); // this line
        el.id = "portal-root";
      } 
    

    因为您的工具提示显示在您的文本上,并且 onMouseLeave 立即调用并且工具提示再次隐藏 所以在样式化的组件中以及在我更改底部样式时的上例中:

      ${({ placement }) =>
        placement === "top" &&
        css`
          bottom: calc(100% + 50px); // this line
          &::before {
            top: calc(100% - 10px);
          }
        `}
    

    及其作品:

    【讨论】:

    猜你喜欢
    • 2022-11-17
    • 2022-07-15
    • 2019-12-03
    • 2019-05-07
    • 2023-03-12
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多