Reactjs 如何始终获得React组件';s顶级DOM节点?
我得到了Reactjs 如何始终获得React组件';s顶级DOM节点?,reactjs,react-redux,Reactjs,React Redux,我得到了this.props.jsx,它要么是React组件,要么是DOM节点 我想挂载React.cloneElement(this.props.jsx,ref:{'myElement}),然后访问this.refs.myElement 问题是ref实际上是一个Connect对象,如果我导出该对象{withRef:true},然后调用getWrappedInstance(),结果仍然是一个React组件,而不是React组件的DOM节点 如何始终为安装的React组件获取顶级DOM节点 我目前
this.props.jsx
,它要么是React组件,要么是DOM节点
我想挂载React.cloneElement(this.props.jsx,ref:{'myElement})
,然后访问this.refs.myElement
问题是ref实际上是一个Connect
对象,如果我导出该对象{withRef:true}
,然后调用getWrappedInstance()
,结果仍然是一个React组件,而不是React组件的DOM节点
如何始终为安装的React组件获取顶级DOM节点
我目前正在研究ReactDOM.findDOMNode()
我甚至能想到的唯一解决方案是以包装器ref为目标并访问该ref的子对象,但硬编码一个神奇的数字似乎很愚蠢。我错误地认为
ReactDOM.findDOMNode(this.refs.myElement)
已被弃用,但它仍然得到完全支持,并且使这个过程更容易
不必getWrappedInstance()
或导出{withRef:true}
在大多数情况下不鼓励使用
ReactDOM.findDOMNode()
,因为它穿透了组件抽象。也许有必要首先解释一下为什么需要这样做,这样我们才能确保这不是问题。@trixn我需要测量DOM上组件的大小,以确定它是否应该停靠到HeaderHanks,这很有用。