javascript - reactJS 应用程序呈现包含数组的对象数组

标签 javascript reactjs

我有以下对象定义:

var idObject = {
    item1: "",
    item2: "",
    item3: "",
    array1: [],
    array2: [],
    array3: []
}

array1、array2 和 array3 中的项数始终相同,因此 array1.length 将等于 array2.length 将等于 array3.length。对于此示例,假设数组 1 中有 3 个项目,数组 2 中有 3 个项目,数组 3 中有 3 个项目。

对象会有多个实例,所以我用这行代码将它们插入不同的数组:

idArray.push(idObject);

在此示例中,假设我最终创建了 2 个 idObject。

我正在尝试渲染结构。输出应如下所示:

item1       item2       item3
array1[1]   array2[1]   array3[1]
array1[2]   array2[2]   array3[2]
array1[3]   array2[3]   array3[3]

item1       item2       item3
array1[1]   array2[1]   array3[1]
array1[2]   array2[2]   array3[2]
array1[3]   array2[3]   array3[3]   

我在想出呈现数据的逻辑时遇到了问题。非常感谢任何帮助。

最佳答案

让我们从数组开始,这很简单,我们只需获取每个元素并将其包装到一个 div 中:

  const List = ({ list }) => list.map(el => (<div>{el}</div>));

现在我们必须对列表和标题进行分组:

 const TitleList = ({ list, title }) => (<div>
  <h3>{title}</h3>
  <List list={list} />
 </div>);

现在我们需要另一个组件来将您的一个对象变成三个标题列表:

 const Group = ({ item1, item2, item3, array1, array2, array3 }) => (<div className="row">
   <TitleList list={array1} title={item1} />
   <TitleList list={array2} title={item2} />
   <TitleList list={array3} title={item3} />
 </div>);

现在只需映射您的数组:

  const result = idArray.map(props => (<Group {...props} />));

你会得到一个可以挂载到 DOM 的元素数组:

 ReactDOM.render(result, document.body);

关于javascript - reactJS 应用程序呈现包含数组的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52819212/

相关文章:

javascript - 使用 anchor 更改页面内容

javascript - 如何检查 Twilio.Device 处理程序是否已经存在

javascript - JQuery:将 HTML 添加到父 Div 作为 AJAX 的结果

css - ReactJS 在页面调整大小时更改图像/ Logo

Reactjs map 函数 - 迭代 json 对象

javascript - 为什么我的 JavaScript 函数不返回已检查的数组值?

javascript - 在图表上显示系列堆栈标签

reactjs - 如何使用 makeStyles/withStyles 将自定义 Prop 传递给 Material-UI 组件?

javascript - 什么时候在 React 中保存状态是安全的?

javascript - 如何根据给定的输入日期在 nodeJs 中生成动态 cron