Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何始终获得React组件';s顶级DOM节点?_Reactjs_React Redux - Fatal编程技术网

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,这很有用。