[英]React - render multiple components using same class - Invariant Violation
I'm new to React, I'm trying to declare a class and use it to render multiple div in different renders, can you please let me know if something is wrong with my approach? 我是React的新手,我正在尝试声明一个类并使用它在不同的渲染中渲染多个div,请问如果我的方法有问题,可以告诉我吗?
I'm getting an Invariant Violation on the second render 我在第二个渲染中遇到了不变违规
Class 类
class ShoppingList extends React.Component {
render() {
return (
<div className="shopping-list">
<h1>Shopping List for {this.props.name}</h1>
<ul>
<li>Instagram</li>
<li>WhatsApp</li>
<li>Oculus</li>
</ul>
</div>
);
}
}
Render 给予
ReactDOM.render(
<ShoppingList name="Mark" />,
document.getElementById('cId1'));
ReactDOM.render(
<ShoppingList name="Mark" />,
document.getElementById('cId2'));
And in the HTML 并在HTML中
<div id="id01">Hello World!</div><br /><br />
<div id="cId1" /><br /><br />
<div id="cId2" /><br /><br />
Firstly HTML doesn't use JSX syntax. 首先,HTML不使用JSX语法。 If you render a React class somehow to an HTML element, you have to use valid child HTML syntax.
如果您以某种方式将React类呈现给HTML元素,则必须使用有效的子HTML语法。
Change:
更改:
<div id="cId1" />
<div id="cId2" />
To:
至:
<div id="cId1"></div>
<div id="cId2"></div>
https://codepen.io/trdunya/pen/PLPPbM?editors=1011 https://codepen.io/trdunya/pen/PLPPbM?editors=1011
Also;
也;
You can create DIVs which are same class names in your HTML file. 您可以在HTML文件中创建与类名称相同的DIV。
<div class="myItem"></div>
<div class="myItem"></div>
var matched = document.querySelectorAll('.myItem');
matched.forEach(function(item)
{
ReactDOM.render(
<ShoppingList name="Mark" />,
item
);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.