对象粘贴中的数组无法作为道具

时间:2019-01-04 23:21:45

标签: javascript arrays reactjs

我不确定这是响应问题还是JavaScript问题。 我的状态下的数据设置是包含对象数组的对象。 这些对象阵列无法正常下降。 我试图将整个对象数组作为道具传递到子组件中,然后遍历该数组以呈现每个对象。不管我做什么,我似乎都无法正确访问该数组。

我希望这是向您提供我所有详细信息的最佳方式。

这是我状态的一部分(我只打开了其中一个组)

    context.js:72 
    (3) [{…}, {…}, {…}]
    0: {id: "5c0fd8da9af84012ee8b5edf", title: "Test", groups: Array(1)}
    1:
    groups: Array(4)
    0: {id: "5c2fdff78b3f6295dce3f63d", title: "Group #1", commands: Array(0)}
    1: {id: "5c2fdffc8b3f6295dce3f63e", title: "Group #2", commands: Array(0)}
    2: {id: "5c2fdfff8b3f6295dce3f63f", title: "Group #3", commands: Array(0)}
    3: {id: "5c2fe0028b3f6295dce3f640", title: "Group #4", commands: Array(0)}
    length: 4
    __proto__: Array(0)
    id: "5c10307e0ba810224f988e4c"
    title: "Test 2"
    __proto__: Object
    2: {id: "5c2fb6930fb58e8ce67977cc", title: "Next Silo Test", groups: Array(3)}
    length: 3
    __proto__: Array(0)

现在,我要访问筒仓的groups数组。我一直支持我的应用程序的根目录,但仍然存在这个问题,因此超出了支持范围。 如果我通过控制台登录筒仓和组项目,则结果为

    silo 
    {id: "5c10307e0ba810224f988e4c", title: 
    "Test 2", groups:                 Array(0)}groups: (4) [{…}, {…}, {…}, {…}]0: {id: "5c2fdff78b3f6295dce3f63d",                         
    title: "Group #1", commands: Array(0)}1: {id: "5c2fdffc8b3f6295dce3f63e", title: "Group #2", commands: Array(0)}
    2: {id: "5c2fdfff8b3f6295dce3f63f", title: "Group #3", commands: Array(0)}
    3: {id: "5c2fe0028b3f6295dce3f640", title: "Group #4", commands: Array(0)}length: 
    4__proto__: Array(0)id: "5c10307e0ba810224f988e4c"title: "Test 2"
    __proto__: Object
    17:05:57.127 Main.js:17 silo.groups []0: {id: "5c2fdff78b3f6295dce3f63d", 
    title: "Group #1", commands: Array(0)}1: {id: "5c2fdffc8b3f6295dce3f63e", title: "Group #2", commands: Array(0)}
    2: {id: "5c2fdfff8b3f6295dce3f63f", title: "Group #3", commands: Array(0)}
    3: {id: "5c2fe0028b3f6295dce3f640", title: "Group #4", commands: Array(0)}
    length: 4
    __proto__: Array(0)
    17:05:57.128 Main.js:18 silo.groups[0] undefined

从这里我看到的是silo是一个对象,silo.groups是一个数组。我无法访问该数组内部的任何元素。即使我执行silo.groups.length,它显示的长度为4,但我却得到0而不是4。

我正在用silos.forEach(silo => {遍历根数组,并希望同样适用于每个silo.groups。

这是之前创建输出的代码。第一个console.log是从将孤岛的值加载到上下文脚本中的状态时转储出来的。在此之前,此组件将永远无法渲染。

const { silos, user } = value
      if (Object.keys(user).length > 0) {
          const siloList = []
          silos.forEach(silo => {
            console.log("silo",silo)
            console.log("silo.groups",silo.groups)
            console.log("silo.groups[0]",silo.groups[0])

在这里我找不到我想念的东西或我弄错了什么。

如果我使用这种结构创建一个JSON对象,我可以自己执行此操作,可以使用相同的代码对其进行钻取,并从每个对象内的每个数组中取出项目。在此应用中某个地方完成此操作后,情况发生了变化。我看不到在哪里。

-编辑:为项目添加仓库-

如果它可以帮助这里的任何人,请立即访问该项目的github存储库 https://github.com/jeremyhawkins1/robin.git

0 个答案:

没有答案