javascript - 为什么即使我有多个目标元素,React.Component 也只渲染一次

标签 javascript jquery reactjs ecmascript-6

我正在尝试使用 React 创建一个小部件,它可以在一个页面上渲染多次(比如一个特殊的按钮小部件)。

我用 ES6 风格定义我的类,如下所示:

export default class myWidget extends React.Component{

..."constructor and other methods"....

  render(){
      return <div className="myButtonStyles">Click me</div>;
  }    

}

我的 html 只是有几个相同的元素和 jQuery 选择器:

$(document).ready(function(){
    $.each($('.myWidget'), function(index, element){
        ReactDOM.render(
           <App/>,
           element
        );
    })
});

<div>First one <span class="myWidget"/></div>
<div>Second one <span class="myWidget"/></div>
<div>A third <span class="myWidget"/></div>

运行我的代码时,我只得到第一个渲染的代码。没有错误!

我尝试了 React.createClass,似乎渲染了 3 次。

我对 React 缺少什么?任何帮助表示赞赏。

最佳答案

您应该将 span 标记更改为 <span class="myWidget"></span>

它有效,你可以检查 ---> jsbin

$(document).ready 的变体 ---> jsbin

class Block extends React.Component {
    render(){
        return (<div>Block</div>);
    }
}

$(document).ready(function(){
    $.each($('.block'), function(index, element){
        ReactDOM.render(
           <Block/>,
           element
        );
    })
});

///html

<body>
  <div class="block"></div>
  <div class="block"></div>
  <div class="block"></div>
  <div class="block"></div>
</body>

关于javascript - 为什么即使我有多个目标元素,React.Component 也只渲染一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099210/

相关文章:

jQuery 选择器 :first

javascript - react onClick 问题

Javascript setTimeout 函数

javascript - JQuery 和评估

javascript - Jquery 导致错误并且 css 粘住

javascript - 总是得到 "(0 , _reactDom.h) is not a function"或 "h is not defined"

javascript - 计数超过限制后如何添加类

javascript - 更改单击元素的索引

reactjs - 获取静态内容时如何防止不必要的渲染?

javascript - 为什么导出/导入默认 ES 模块属性比命名模块属性更快?