web-dev-qa-db-ja.com

要素の位置を取得する方法React | Redux(.getBoundingClientRect()+ .getWrappedInstance())

Reactでレンダリングされたコンポーネントの位置を見つけようとしています。私はreduxを使用しているので、接続関数を次のように変更する必要がありました。

export default connect(mapStateToProps, mapDispatchToProps,null,{ withRef: true })(MyComponent);

今、私が呼び出すと、コンポーネントが戻ってきます:

class OneColumn extends Component { 
    componentDidMount(){

        var input = this.refs.myComponentsRef.getWrappedInstance();

        console.log(input); // Outputs > TheComponentIWant {props: Object, context: Object, refs: Object, updater: Object, _reactInternalInstance: ReactCompositeComponentWrapper…}

        var inputRect = input.getBoundingClientRect(); 
        console.log(inputRect); // Outputs error: Uncaught TypeError: input.getBoundingClientRect is not a function
    }
//...
}

したがって、コンポーネントを取得することはできますが、boundingClientRectを取得することはできません。

私が見落としているものはありますか?

助けてください:)

5
DSz

この問題を回避する別の解決策を見つけました: この投稿は別の投稿を説明および参照しています

基本的に、コンポーネントがレンダリングを開始すると、コンポーネントの位置を格納するコールバック関数が提供されます。

2
DSz