2017-06-27 14 views
0

this.props.jsxが与えられました。これは、ReactコンポーネントかDOMノードです。私はReact.cloneElement(this.props.jsx, ref: { 'myElement' });をマウントしたいReactコンポーネントのトップレベルDOMノードを常に取得するには?

は、その後、this.refs.myElement

へのアクセスの問題は、refが、実際にConnectオブジェクトであるということである、と私はオブジェクト{ withRef: true }が、その後getWrappedInstance()を呼び出すことをエクスポートする場合、結果はまだリアクトコンポーネントではなく、 ReactコンポーネントのDOMノード

マウントされたReactコンポーネントのトップレベルDOMノードをいつでも取得できますか?

私は現在、私も考えることができる唯一のソリューションは、ラッパーREFを対象とし、その参照の子にアクセスすることですが、マジックナンバーをハードコーディングすることは愚かなようだReactDOM.findDOMNode()


を追求しています。

+0

使用する必要はありません

...誤っReactDOM.findDOMNode(this.refs.myElement)は廃止されたと思ったが、それはまだ完全にはサポートされていますが、このプロセスは非常に簡単になりますReactDOM.findDOMNode() 'は、ほとんどの場合、コンポーネントの抽象化を突き刺すため、推奨されません。なぜなら、最初にこれを行う必要がある理由を説明する価値があるかもしれません。なぜなら、これは[XY問題](https://meta.stackexchange.com/questions/66377/what-is- the-xy-problem)が含まれています。 – trixn

+0

@trixn DOM上のコンポーネントのサイズを測定して、ヘッダにドッキングする必要があるかどうかを判断する必要があります – neaumusic

答えて

関連する問題