javascript - 如何在React JS中设置两个循环

标签 javascript loops reactjs

我得到一个数组,其中包含另一个数组。它是一个 json。我正在尝试执行两个循环,但没有成功。

{this.state.listOfAlarms && this.state.listOfAlarms.map((alarms) =>
    {alarms.report && alarms.report.forEach((alarm) =>
        <ReportAlarmRow alarm={alarms} alarmType={alarm}/>
    )}
)}

我尝试从 forEach 开始,然后再进行 .maps。再次失败。

最佳答案

为了便于阅读,您应该在 return 之前执行这些循环声明。

此外,还需要添加key属性(property)给您<ReportAlarmRow>组件。

A "key" is a special string attribute you need to include when creating lists of elements.

Keys help React identify which items have changed, are added, or are removed. Keys should be given to the elements inside the array to give the elements a stable identity.

Lists and Keys - React documentation

我用 key={alarm[i].id} 设置了 key 但我不知道你的alarm中有哪些属性对象。
使用唯一的int!

Keys Must Only Be Unique Among Siblings

尝试这样

constructor(props) {
  super(props);
  // State
  this.state = {
    listOfAlarms: []
  }
}

render() {
  const reports = this.state.listOfAlarms.map((alarms) => {
    if (alarms.report) {
      return alarms.report.map((alarm) => 
        <ReportAlarmRow alarm={alarms} alarmType={alarm} key={alarm.id} />
      );
    }
  });

  return {
    <div>
      { reports.length ? reports : null }
    </div>
  }
}

关于javascript - 如何在React JS中设置两个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40631122/

相关文章:

javascript - Redux 容器不知道 "this"是什么

python - 将字典循环Python转换为Json

reactjs - 如何*同时*将 ngrok 用于后端和前端?

reactjs - 使用语义 UI react 多步骤表单

javascript - 为什么以下正则表达式不删除 ## 字符?

javascript - 如何删除特定子节点

javascript - 试图理解这个函数加密(消息)

css - Sass 循环 @import,a.scss 需要 b.scss 上的类,b.scss 需要 a.scss 上的类

c - 仅循环外的段错误

reactjs - React/Redux 应用程序 - 类型错误 : Cannot read property 'user' of undefined