我在React myComponent.js
ReactDOM.render(
<MyComponent />,
document.getElementById('my-id')
);
在我的Html中,我想渲染两次,HTML如下:
<div id='my-id></div>
some html
<div id='my-id></div>
我想在此页面中两次做出反应渲染,但它只为第二个div渲染一次。反正有渲染两次吗?
答案 0 :(得分:3)
HTML中的两个或多个元素不能使用相同的id
。使用不同的id
s
<div id='my-id-one></div>
some html
<div id='my-id-two></div>
并分别为每个ID调用ReactDOM.render
。
ReactDOM.render(
<MyComponent />,
document.getElementById('my-id-one')
);
ReactDOM.render(
<MyComponent />,
document.getElementById('my-id-two')
);
答案 1 :(得分:3)
看起来你想在两个不同的地方渲染它,中间有非React代码。为此,您需要提供div
个不同的ID:
<div id='my-id></div>
some html
<div id='my-other-id></div>
然后将组件渲染到每个div
:
ReactDOM.render(
<MyComponent />,
document.getElementById('my-id')
);
ReactDOM.render(
<MyComponent />,
document.getElementById('my-other-id')
);
答案 2 :(得分:2)
你可以做到
ReactDOM.render(
<div>
<MyComponent />
<MyComponent />
</div>, document.getElementById('my-id') );
或者你也可以有两个div
个不同身份的标签
<div id='one'></div>
some html
<div id='two'></div>
然后
ReactDOM.render(
<MyComponent />,
document.getElementById('one')
);
ReactDOM.render(
<MyComponent />,
document.getElementById('two')
);
答案 3 :(得分:1)
另一种选择是使用class
来定义要渲染的元素:
<div id="my-id-one" class="render-here"></div>
some html
<div id="my-id-two" class="render-here"></div>
然后在js
:
let elements = document.getElementsByClassName('render-here');
elements.map(element => ReactDOM.render(
<MyComponent />,
element
));