【问题标题】:Deep nested array of objects not rendering未渲​​染的深层嵌套对象数组
【发布时间】:2017-07-13 06:07:27
【问题描述】:

我有一个相当嵌套的数组,它是通过从 Firebase 检索数据、修改它并将其作为道具传递下来形成的。数组的结构是

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

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

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

这里发生的事情也很迷茫,因此我们将不胜感激。此外,当我使用更简单的修改后的 Firebase 数据数组时,它会渲染,所以我很确定在组件渲染后传递道具没有问题。

【问题讨论】:

  • 你在<div>之前缺少return

标签: javascript reactjs ecmascript-6


【解决方案1】:

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

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

附:确保您也为迭代器分配唯一键

这里要注意的一点是() =&gt; {}() =&gt; (...) 之间的区别,在第二种情况下,您在(...) 中编写的任何内容都会显式返回,而在第一种情况下,它是您需要从其中@987654326 的块@

所以你可以简单地写

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

【讨论】:

    猜你喜欢
    • 2020-12-15
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2020-04-13
    • 1970-01-01
    相关资源
    最近更新 更多