1

这里有点奇怪。我的网站几乎完成了,只有一个问题。我已经实现了工具提示,但它们仅在我刷新页面后才会显示!这是重现该问题的 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;

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

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"
                />

b.) 组件的底部

<ReactTooltip data-html="true" />

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

4

1 回答 1

4

万一其他人遇到这个问题,我在拔头发几个小时后终于找到了解决方案。

我使用了以下功能:

rebuildToolTip(){
    ReactTooltip.rebuild();
}

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

<div
    style={{ position: "relative" }}
    onContextMenu={(e) => e.preventDefault()}
    className="frame-wrapper"
    id="Hunter"
    onLoad={() => {
      this.scrollComponentIntoView();
      this.rebuildToolTip();
    }}
  >
于 2021-08-07T05:46:49.153 回答