【发布时间】:2019-01-20 12:29:06
【问题描述】:
我有一个显示多个框的页面,每个框都属于特定的公司。每个公司都有多个项目,每个项目都有多个版本。
方框 1: 公司名称/项目名称/版本名称
方框 2: 公司名称/项目名称/版本名称
我有一个这样定义的状态:
this.state = {
companies: [],
projects: [],
releases: [],
activeProjects: []
}
在这里,我正在从数据库中获取所有数据:
componentWillMount() {
getCompanys().then(companies => {
const projectPromises = companies.map((company) => {
getProjects(company).then(projects => {
const releasePromises = projects.map((project) => {
return getReleases(project).then(releases => {
if(projects.length > 0 || releases > 0) {
this.setState({
companies: companies,
projects: projects,
releases: releases
});
}
})
})
})
});
})
}
返回以下数据:
Companys: (2) [{…}, {…}]0: {_id: {…}, company_name: "IBM", …}
Projects: [{…}]0: {_id: {…}, project_name: "Project 101", …}
Releases: (3) [{…}, {…}, {…}]0: {_id: {…}, release_name: "Release 103", …}
我将获得 2 个公司、1 个项目和 3 个版本。
如果我想将我的每个公司、项目和版本存储到我的 activeProjects 数组中,我将如何实现以下目标?
activeProjects: [
{
company: ,
project: ,
release:
},
{
company: ,
project: ,
release:
},
]
有人可以帮帮我吗?
我希望我的最终结果是这样的:
activeProjects.map((project, index) => {
return(
**Box 1**
IBM / Project 101 / Release Name goes here
**Box 2**
Facebook / Project 102 / Release Name goes here
)
});
【问题讨论】:
-
您能提供更多关于公司、项目和版本之间关系的信息吗?比如,项目是否与他们所属的公司有关?是否有最新版本的指示符(假设您希望在框中显示最新版本)?
-
@bwalshy- 在 DB 中,每个公司都有一个项目字段,该字段是一个包含项目 ID 的数组类型。同样,每个项目都有一个名为 Releases 的字段,它是一个包含对象 ID 的数组类型。
标签: javascript arrays reactjs object iterator