【发布时间】:2015-09-07 12:01:33
【问题描述】:
我有这个用例,页面上有一个“加载更多”按钮,用于从 API 端点获取更多项目,因此我希望这些项目在到达时附加到 DOM。问题是 Web 服务器提供的 HTML 页面在相同的 item-list div 容器中附带了一些额外的列表项(如下所示),我在页面加载时使用空数据/道具安装了我的 React 组件。
<div class="item-list">
<div class="item-list__child-item"></div>
<div class="item-list__child-item"></div>
...
<div class="item-list__child-item"></div>
</div>
我的假设是,如果我以 ReactJS 方式处理此问题,一旦我从服务器 (REST) 获取更多项目并将这些项目附加到“itemList”状态数组,react 将以某种方式替换所有保存安装组件的“项目列表”div。
我认为一种快速的解决方法是可行的,它不依赖于同构的东西并在服务器上预渲染反应组件,是创建一个单独的同级 div 具有相同的 div 类名称'item -list' 并添加一个 id 属性来挂载组件,因此生成的 HTML 如下所示:
<div class="item-list">
<div class="item-list__child-item"></div>
<div class="item-list__child-item"></div>
...
<div class="item-list__child-item"></div>
</div>
<div class="item-list" id="react-component-name"></div>
也许有一种更简洁的方法可以做到这一点,而无需涉及同构的东西,或者我不了解 React 的概念及其工作原理。无论如何,您将不胜感激您对此的任何指示。
【问题讨论】:
-
您可以尝试危险地SetInnerHTML 将原始html 设置为.item-list
-
试试这个演示 jsfiddle.net/x4jjry04
标签: reactjs