我只是想映射状态对象内部的嵌套值。数据结构如下所示:
我想映射每个里程碑名称,然后映射该里程碑内的所有任务。现在我正在尝试使用嵌套地图函数来这样做,但我不确定我是否可以这样做。
渲染方法如下所示:
render() {
return(
<div>
{Object.keys(this.state.dataGoal).map( key => {
return <div key={key}>>
<header className="header">
<h1>{this.state.dataGoal[key].name}</h1>
</header>
<Wave />
<main className="content">
<p>{this.state.dataGoal[key].description}</p>
{Object.keys(this.state.dataGoal[key].milestones).map( (milestone, innerIndex) => {
return <div key={milestone}>
{milestone}
<p>Index: {innerIndex}</p>
</div>
})}
</main>
</div>
})}
</div>
);
}
我认为我可以通过将内部索引传递给这行代码以某种方式实现该结果: {Object.keys(this.state.dataGoal[key].milestones)
所以它看起来像: {Object.keys(this.state.dataGoal[key].milestones[innerIndex])
。
但我不确定如何将 innerIndex
向上传递。我还尝试通过 {milestone.name}
获取里程碑名称 --- 但这也不起作用。我想那是因为我必须指定密钥。
有人有想法吗?或者我应该以完全不同的方式映射整个对象吗?
很高兴有任何帮助,雅库布
原文由 Jakub Kašpar 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用嵌套映射映射里程碑,然后映射任务数组: