2017-05-23 6 views
1

ライブラリを作成していますが、ライフサイクルメソッドがないためDOM幅を取得できません。機能的なステートレスコンポーネントget width

私のコンポーネントがクラスを持っている場合、私はこの

var Container = React.createComponent({ 

    componentDidMount: function() { 
    var width = React.findDOMNode(this).offsetWidth; 
    }, 

    render: function() { 
    <svg /> 
    } 
}); 

を行うことができます。しかし、それは、機能、ステートレスなコンポーネント何か?どのように要素の幅を取得するには?

+0

私はコンポーネントの親で測定を行う必要があると思います(親がステートレスでない場合)。 – Scarysize

+0

@スカラーサイズなので、コンテナ内でそれを行うのが唯一の方法ですか? –

+0

私は「はい」と考えることができる唯一のクリーンな方法です。これを回避するには、いくつかのハックがあるかもしれません。コンポーネントがレンダリングされたときに呼び出される子としての関数を渡し、そこで測定をトリガーすることができます。 – Scarysize

答えて

0

私は右のあなたの質問を得た場合、非常にわからないが、どのようにこのように要素を得ることについて:

var element = document.getElementById("someID"); 
if(element != null) 
    console.log(element.offsetWidth); 

関連する問題