javascript - React - 使用同一类渲染多个组件 - 不变违规

标签 javascript reactjs

我是 React 新手,我正在尝试声明一个类并使用它在不同的渲染中渲染多个 div,如果我的方法有问题,您能让我知道吗?

我在第二次渲染时遇到不变违规

codepen example

类别

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>
    );
    }
    }

渲染

ReactDOM.render(
    <ShoppingList name="Mark" />,
    document.getElementById('cId1'));

    ReactDOM.render(
    <ShoppingList name="Mark" />,
    document.getElementById('cId2'));

在 HTML 中

<div id="id01">Hello World!</div><br /><br />
<div id="cId1" /><br /><br />
<div id="cId2" /><br /><br />

最佳答案

首先 HTML 不使用 JSX 语法。如果您以某种方式将 React 类渲染为 HTML 元素,则必须使用有效的子 HTML 语法。

更改:

<div id="cId1" />
<div id="cId2" />

致:

<div id="cId1"></div>
<div id="cId2"></div>

https://codepen.io/trdunya/pen/PLPPbM?editors=1011

还有;

您可以在 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
  );
});

关于javascript - React - 使用同一类渲染多个组件 - 不变违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54918221/

相关文章:

javascript - 使用 importmaps 时如何在 Rails 7 中自定义 Trix 工具栏?

javascript - Backbone console.log 属性并将它们传递给 View

javascript - 如何跨 NodeJs 应用程序和模块正确重用与 Mongodb 的连接

javascript - 禁用鼠标事件 react

javascript - 如何将常量放入 React 组件中,并包装在 recompose 中

css - React Native splinter 的边框

javascript - 关闭 MUI Snackbar 通知并对按键执行操作

java - 按钮不会链接到 Javascript

javascript - 未处理的拒绝(类型错误): Failed to fetch (POST) react/node/express

javascript - 有什么方法可以检测浏览器控制台是否能够渲染颜色?