材质 UI 工具提示在具有溢出滚动的容器内无法正确显示

the*_*bel 4 html javascript css reactjs material-ui

在我的reactJS应用程序中,我使用Material UI ToolTip列表和IconButton作为容器内的子divoverflow: scroll。在特定行中,Material UI ToolTip 如下所示:

   <ClickAwayListener onClickAway={handleTooltipClose}>
      <Tooltip
        PopperProps={{
          disablePortal: true,
        }}
        onClose={handleTooltipClose}
        open={open}
        disableFocusListener
        disableHoverListener
        disableTouchListener
        title={data}
        arrow
      >
        <InfoOutlinedIcon
          className={classes.root}
          onClick={handleTooltipOpen}
        />
      </Tooltip>
    </ClickAwayListener>
Run Code Online (Sandbox Code Playgroud)

工具提示的位置和显示也不正确:

工具提示错误 工具提示

我无法在包含表格和 ToolTip 的 div 容器上使用overflow: visible;,因为我想要滚动行为,有什么方法可以使 ToolTip 从容器中弹出而无需剪切?

95f*_*973 10

Material-UI 使用Popper.js. 您可以通过Tooltip PopperProps使用不同的Popper.js 选项来处理这些类型的情况。在你的场景中,我认为你可以使用修饰符preventOverflow

<Tooltip
  PopperProps={{
    disablePortal: true,
    popperOptions: {
      positionFixed: true,
      modifiers: {
        preventOverflow: {
          enabled: true,
          boundariesElement: "window" // where "window" is the boundary
        }
      }
    }
  }}
  title={popperTitle}
  aria-label="add"
>
Run Code Online (Sandbox Code Playgroud)

编辑材质演示(分叉)

  • 你好,看来 PopperProps 不在材质 ui 弹出属性中。但我会尝试这个 https://v1.material-ui.com/utils/popper/。谢谢。 (2认同)