2016-10-13 11 views
2

私は同じクラスを使用し、同じ内容を持つ複数の要素を持っています。同じクラスを使って複数の要素をレンダリングするReactDOM?

だから私は、私の代わりにのものでそれらをレンダリングするためにReactDOMを使用することができます。

ReactDOM.render(
    <Footer source="./data/nav.json"/>, 
    document.getElementsByClassName('footer')[0] //mountNode 
); 

ReactDOM.render(
    <Footer source="./data/nav.json"/>, 
    document.getElementsByClassName('footer')[1] //mountNode 
); 

ReactDOM.render(
    <Footer source="./data/nav.json"/>, 
    document.getElementsByClassName('footer')[2] //mountNode 
); 

私はこれらの複数の同じ要素がどのくらいあるか知っているだろうと私は動的にそれを行うことができればそれがベストでしょう。

可能ですか?

EDIT:

var elementLength = document.getElementsByClassName("footer").length; 
if (elementLength > 0) { 
    for (var i = 0; i < elementLength; i++) { 
     ReactDOM.render(
      <Footer source="./data/nav.json"/>, 
      document.getElementsByClassName('footer')[i] //mountNode 
     ); 
    } 
} 

それは./data/nav.jsonを複数回呼び出します。以下のような

答えて

2

何か(テストしていません):

Array.prototype.forEach.call(
    document.getElementsByClassName('footer'), 
    function(el) { 
    ReactDOM.render(
     <Footer source="./data/nav.json"/>, 
     el 
    ) 
    } 
) 

編集:今、更新のため

+0

感謝をテストしました。これは '

'を複数回ループします。したがって、 '。/ data/nav.json'時間を呼び出しています。私はそれを一度呼び出すことができますが、複数の要素にレンダリングすることはできますか? – laukok

+0

申し訳ありませんが、単に '。/ data/nav.json'を一度呼び出すようです。私はちょうど再チェックしました... – laukok

+1

実際には、最初の読み込みのために '。/ data/nav.json'を複数回呼び出します。あなたがページをリフレッシュしない限り、一度それを呼んでください。 – laukok

関連する問題