javascript - React-tooltip渲染两次

标签 javascript reactjs tooltip

我有这个组件形式的react-tooltip,我在其中传递了一些 Prop 并创建了工具提示。我希望工具提示的位置默认为“顶部”,但是当我将 Prop 传递到不同的位置时,可以更改它。

class Tooltip extends PureComponent {
  render() {
    const { text, element, type, place, className } = this.props;
    return (
      <div data-tip={text} className="m0 p0">
        {element}
        <ReactTooltip
          type={type}
          place={place}
          effect="solid"
          className={className}
          html
        />
      </div>
    );
  }
}

Tooltip.defaultProps = {
  type: 'info',
  place: 'top',
  className: 'tooltip-top',
};

Tooltip.propTypes = {
  text: PropTypes.string.isRequired,
  element: PropTypes.element.isRequired,
  type: PropTypes.string,
  place: PropTypes.sring,
  className: PropTypes.sring,
};

export default Tooltip;

然后我有另一个组件,我将一些 Prop 传递给工具提示组件,我只想将这个唯一的组件放置在底部。

    <Tooltip
      type="warning"
      place="bottom"
      className="tooltip-bottom"
      text={
        'Ingrese los datos de la información financiera histórica de su compañía en la plantilla'
      }
      element={
        <div className={`center mt3 ${styles.optionButton}`}>
          <NavLink
            className="btn btn-primary"
            to={`${path}/manual-upload`}
          >Continuar</NavLink>
        </div>
      }
    />

问题是在底部渲染,但也在顶部渲染。我怎样才能让它只出现在底部(在这个组件中,其余的工具提示在顶部)。谢谢 ;) enter image description here

最佳答案

如果您使用<ReactTooltip />在循环内,那么您必须设置 data-forid对于每一个。

const Tooltip = ({ children, data }) => {
  const [randomID, setRandomID] = useState(String(Math.random()))

  return (
    <>
      <div data-tip={data} data-for={randomID}>{children}</div>
      <ReactTooltip id={randomID} effect='solid' />
    </>
  )
}


export default Tooltip

关于javascript - React-tooltip渲染两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49844207/

相关文章:

javascript - 使用 Javascript 的条件 Highcharts 标记符号

javascript - 我想显示 slider div,直到鼠标悬停在 jquery 中有许多内部 div 的容器 div 上吗?

reactjs - Azure Devops react 脚本测试永远挂起

java - JFreeChart 沿 x 轴的多个工具提示

javascript - 在c3js中使用字符串列作为工具提示

javascript - 如何在不同时刻触发不同的 setInterval 函数?

JavaScript 替换问题

javascript - Redux 商店帮助 : Students and Schools

javascript - 我需要这些手工制作的组件吗(将通过 props 和条件包装器的 React.Fragment)

c# - Winforms ToolTip 获取和更改所有分配的工具提示