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)
知道我能做些什么来解决这个问题吗?
万一其他人也遇到这个问题,经过几个小时的拔毛后,我终于找到了解决方案。
我使用了以下函数:
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)