【发布时间】:2020-11-14 14:38:51
【问题描述】:
我正在使用 react-bootstrap 中的 Tooltip 覆盖,但在 StrictMode 中不推荐使用 findDOMNode 错误。根据documentation,使用overlaytrigger 的函数形式避免了React.findDOMNode 调用,对于那些试图符合严格模式但我仍然收到如下错误的人。
index.js:1 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode. Instead, add a ref directly to the element you want to reference.
in div (created by Tooltip)
in Tooltip (at NavMenu.tsx:31)
in Transition (created by Fade)
in Fade (created by Overlay)
in Overlay (created by Overlay)
in Overlay (created by OverlayTrigger)
in OverlayTrigger (at NavMenu.tsx:28)
in div (created by ForwardRef)
in ForwardRef (created by Nav)
in Nav (at NavMenu.tsx:27)
in div (created by Context.Consumer)
in Transition (created by ForwardRef)
in ForwardRef (created by Context.Consumer)
in NavbarCollapse (at NavMenu.tsx:23)
in nav (created by Navbar)
in Navbar (at NavMenu.tsx:18)
in StrictMode (at src/index.tsx:13)
OverLayTrigger 的代码
<OverLayTrigger
key="left"
placement="left"
overlay={<Tooltip id="tooltip-initials">{`Logged in as ${this.context.user?.name}`}</Tooltip>}>
{
({ref, ...triggerHandler}) => (
<div className="avatar-circle" {...triggerHandler} >
<span className="initials" id="initials" ref={ref}>
{`${this.context.user?.given_name.substring(0,1)}${this.context.user?.family_name.substring(0,1)}`}
</span>
</div>
)
}
</OverLayTrigger>
你能告诉我上面缺少什么吗?
【问题讨论】: