我需要能够通过其offsetHeight定位React DOM元素。在渲染前反应DOM offsetHeight
问题是我无法收集尚未创建的元素的offsetHeight(所以高度无法作为参数传递给渲染函数),而且我也无法计算其中的高度渲染功能的阵营DOM文档裁判指出:
永远不能访问任何裁判组件的渲染方法的内 - 或在任何组件的渲染方法,即使在调用堆栈在任何地方运行。
DOM元素应渲染相对于单击的图标来显示它。
组件树:
|— FormInputGroup
|— Label
|— TooltipIcon
|— Tooltip
|— Input
工具提示图标渲染功能:
const TooltipIcon = ({ attribute, setCurrentTooltip }) => (
<Icon
name="tooltip"
style={{
position: "relative",
top: "1px",
marginLeft: "10px",
"cursor": "pointer",
}}
onClick={() => setCurrentTooltip(attribute)}
/>
)
渲染FUNC重刑:
const Tooltip = ({ title, content, setCurrentTooltip }) => (
<div className="popover"
style={{
// top: "-"+ ReactDOM.findDOMNode(this).offsetHeight +"px",
}}
>
<h3 className="popover-title">{title}</h3>
<div className="popover-close-button"
onClick={() => setCurrentTooltip(null)}
/>
<div className="popover-content">{content}</div>
</div>
)
这里是没有定位的DOM元素: not positioned
这里是我想呈现的位置(顶部: - (的offsetHeight)PX : positioned