【问题标题】:ReactDOM to render multiple elements using the same class at ones?ReactDOM 使用同一类渲染多个元素?
【发布时间】:2016-10-13 22:18:43
【问题描述】:

我有多个元素使用相同的类并具有相同的内容。

所以我可以使用 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
);

如果我能动态地做这将是最好的,因为我不知道这些多个相同的元素有多少。

有可能吗?

编辑:

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

【问题讨论】:

    标签: reactjs ecmascript-6 react-dom


    【解决方案1】:

    类似的东西(未测试):

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

    编辑:现已测试

    【讨论】:

    • 感谢您的更新。但这将循环&lt;Footer source="./data/nav.json"/&gt; 多次。所以它正在调用./data/nav.json 次。我可以只调用一次然后将其呈现给多个元素吗?
    • 抱歉,它似乎只调用了一次./data/nav.json。我刚刚重新检查...
    • 实际上它在第一次加载时多次调用./data/nav.json。然后只调用一次,除非你刷新页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 2019-01-04
    • 2021-10-21
    • 2017-10-30
    • 2016-03-11
    • 2018-06-09
    相关资源
    最近更新 更多