javascript - 根据数组长度重复 ReactDOM.render

标签 javascript arrays reactjs

我有一个简单的 React 应用程序,它包含一组数据,这些数据显示在 React 中创建的容器中:

var products = [
{ name: 'product 1'},
{ name: 'product 2' },
{ name: 'product 3' },
{ name: 'product 4' }
];

var Status = React.createClass({

render: function () {

    var listItems = this.props.items.map(function (item) {
        return (
            <h2 key={item.name}>
               {item.name}
            </h2>
        );
    });
    return (           
        <div className="ContainerName">
        {listItems}                                              
        </div>     
    );
}
});

ReactDOM.render(<Status items={products} />,
document.getElementById('statusContainer'));

我遇到的问题是我希望“ContainerName”div(或 Status var)根据数组中的项目数呈现(4 次,但目前它只呈现一次)。

我试过了,但没用:

ReactDOM.render(<Status items={products} />,
document.getElementById('statusContainer'), products.length);

ReactDom 只能使用一次吗?或者有没有办法根据数组长度重用组件?还是我完全误解了?

最佳答案

渲染函数必须返回一个具有任意数量子元素的根元素。这会起作用:

var products = [
  { name: 'product 1'},
  { name: 'product 2' },
  { name: 'product 3' },
  { name: 'product 4' }
];

var Status = React.createClass({
  render: function() {
    var listItems = this.props.items.map(item => {
      return (
        <div className="ContainerName" key={item.name}>
          <h2>{item.name}</h2>
        </div>
       );
    });

    return <div className="statusComponentRoot">{listItems}</div>;
  }
});

ReactDOM.render(
  <Status items={products} />,
  document.getElementById('statusContainer')
);

关于javascript - 根据数组长度重复 ReactDOM.render,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46046549/

相关文章:

javascript - Angular 将 ng-repeat 输入值存储到模型中

javascript - 如何使用 javascript/jquery 获取文本框数组值

Ruby:从哈希 A 到哈希 B 的最快路径

javascript - react native + 终极版 : Why does Switch immediately turns back to false after being switched to true?

javascript - 如何在 js 中点击 x 次后禁用按钮?

javascript - 单击按钮时,使用 nextSiblingElement 标记使我的列表项在页面中向下移动

javascript - react .js : shouldComponentUpdate in array of stateless child Components

reactjs - React - 具有相同路径的路由,但不同的参数会在更新时更改数据

javascript - 帮助我说服老师他需要停止教授 IE 过滤器!

arrays - 如何在 golang 中创建具有动态长度而不是 slice 的数组?