React-Tooltip 在页面刷新之前不显示

Fra*_*rds 4 javascript reactjs react-tooltip

这里有点奇怪。我的网站实际上已经完成,只有一个问题。我已经实现了工具提示,但它们仅在刷新页面后才会显示!这是重现该问题的 GIF:

https://i.imgur.com/NbHyN77.mp4

该包来自 NPM,链接如下:https ://www.npmjs.com/package/react-tooltip

我已经浏览了他们的文档、故障排除和 github 存储库上报告的问题,但没有任何内容描述我的问题。该网站位于: https: //ezekias1337.github.io/Burning-Crusade-Talent-Calculator/#/

奇怪的是,如果我为其中一条路线添加书签并将其加载到新选项卡中,它会第一次加载。仅当我从图标中选择组件时才会出现此问题。

我确保从“react-tooltip”导入ReactTooltip;我还在每个组件的底部和 app.js 中添加了。添加 data-for 属性并没有解决问题。

这是我的 App.js 的代码:

import ReactTooltip from 'react-tooltip';

class App extends Component {
  
  
    render() {
      return (
          <div className="App">
                            <CustomNavbar />
              <ClassSelector />
              
              <FooterComponent />
              <ReactTooltip 
                html={true}
              />
          </div>
      );
  }
}

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

以下是与每个组件中的工具提示相关的代码:

a.) 具有工具提示的图像(每个图像都有唯一的工具提示)

<img
                  onMouseEnter={this.displayMouseOverlayInnerElement}
                  onMouseLeave={this.hideMouseOverlayInnerElement}
                  onMouseDown={() => {
                    this.talentClick();
                    this.toolTipFunction();
                  }}
                  onTouchEnd={this.talentClick}
                  className="talentHover"
                  src={overlayImage}
                  style={{ display: "none" }}
                  data-tip={Hunter[0].toolTip[0]}
                  id="1"
                />
Run Code Online (Sandbox Code Playgroud)

b.) 组件底部

<ReactTooltip data-html="true" />
Run Code Online (Sandbox Code Playgroud)

知道我能做些什么来解决这个问题吗?

Fra*_*rds 5

万一其他人也遇到这个问题,经过几个小时的拔毛后,我终于找到了解决方案。

我使用了以下函数:

rebuildToolTip(){
    ReactTooltip.rebuild();
}
Run Code Online (Sandbox Code Playgroud)

随后,我将此函数添加为正在呈现的组件上的 onLoad 事件处理程序。

<div
    style={{ position: "relative" }}
    onContextMenu={(e) => e.preventDefault()}
    className="frame-wrapper"
    id="Hunter"
    onLoad={() => {
      this.scrollComponentIntoView();
      this.rebuildToolTip();
    }}
  >
Run Code Online (Sandbox Code Playgroud)