深度嵌套的对象数组未呈现

IT技术 javascript reactjs ecmascript-6
2021-04-19 10:17:59

我有一个相当嵌套的数组,它是通过从 Firebase 检索数据、修改它并将其作为props传递下来而形成的。数组的结构是 在此处输入图片说明

每个数组(2) 的值几乎都采用相同的格式。我正在尝试渲染来自每个“array(2)”[0] 对象的 2 个月 = 1、轻度 = 3 等数据点以及来自“array(2)” 1的数据点,例如 RWJ = 2.5, (它正上方的 0 对象是完全相同的数据格式)。我尝试首先使用以下方法呈现密钥“RWJ” 在此处输入图片说明

当我尝试执行此操作时,没有任何渲染。但是,当我调用一个将“thirdData”记录到控制台的简单函数时,它会准确打印出我正在寻找的内容。

在此处输入图片说明 在此处输入图片说明

thirdData = (value) => {
  console.log(value)
}

非常迷失,因为这里发生了什么,所以任何帮助将不胜感激。此外,当我使用更简单的修改过的 Firebase 数据数组时,它会呈现,所以我很确定在组件呈现后传递的props没有问题。

1个回答

问题是您没有从innermostmap 函数内部返回任何内容

return Object.keys(secondData).map((thirdData, i) => {
     return <div key={i}>
           {this.thirdData(thirdData)}
     </div>
}

PS确保您也为迭代器分配了唯一键

这里要注意的一件事是() => {}and之间的区别() => (...),在第二种情况下,你写的任何内容都(...)被显式返回,而在第一种情况下,它是一个你需要从中的块return the content

所以你可以简单地写

return Object.keys(secondData).map((thirdData, i) => (
     return <div key={i}>
           {this.thirdData(thirdData)}
     </div>
)