javascript - 输出 React 组件的 n 个实例

标签 javascript reactjs

我想创建 React 组件的 n 个实例。

考虑到 JSX 只能包含表达式,有什么好的简洁方法可以做到这一点?

我目前正在尝试以下操作:

<Wrapper>
  {repeat(n)(i => <MyComponent i={i} />}      
</Wrapper>

function repeat(n) {
    return cb => Array(n).fill(null).forEach((_, i) => cb(i));
}

最佳答案

您可以随意使用 JavaScript :)

render() {
  const lst = [1, 2, 3, 4];
  return (
    <div>
      {lst.map(itm => <span key={itm}>{itm}</span>)}
    </div>
  );
}

如果您没有准备好key,您可以使用映射回调的第二个参数,即数组中的索引。 More info on MDN .

在您没有数组而只有数字的特定情况下:

render() {
  var times = [];
  for (let i = 0; i < 10; i++) {
    times.push(<MyComponent key={i} i={i} />);
  }
  return <Wrapper>{times}</Wrapper>;
}

另请检查this answer关于如何使用 for 循环。它不是那么好,但也有效。我相信 React 团队计划让 JSX 中的数组使用更加直接。

如果您只有一个数字,并且不想使用 for 循环,您也可以“伪造”它,例如使用 string.repeat 。不确定这是否非常可读:)

render() {
  return (
    <div>
      {'a'.repeat(10).split('').map((_, i) => <MyComponent i={i} />}
    </div>
  );
}

关于javascript - 输出 React 组件的 n 个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45300023/

相关文章:

javascript - 检测对 HTML5 iframe 沙盒属性的支持

javascript - Ajax 异步回调 beforesend

javascript - 将 html 内容分解为单独的更高级别的 html 标签并将它们存储在数组中

javascript - 如何创建一个新的 react 组件实例

javascript - 在 Vercel 上部署时在初始化之前获取 "ReferenceError: Cannot access ' 数据

javascript - 在 iOS 中使用 JavaScript 在 PWA 中显示服务器生成的图像

javascript - 在 div 中使用 onchange

javascript - react native : Passing DataSource into Method from Props in _renderRow

javascript - Mongoose保存返回正确的保存对象,但它没有保存到数据库

javascript - 如何在每次安装任何组件时刷新脚本?