不从我的for()迭代我的整个数组

时间:2018-04-08 07:20:25

标签: arrays reactjs object for-loop ecmascript-next

我正在React写一个应用程序,同时我正在玩一些新的ECMA 17功能试图让我们更熟悉一些。最初在父组件中我使用Map()为我的数组中的每个索引迭代一个新的div。

对于一个新组件,虽然是Map的子组件,我想我会使用for(){}格式而不是Map来使用Object.enteries()。我以为我可以简单地返回那些值,但它只是部分工作。

我得到的问题是它只会迭代我的数组的第一个索引。它只控制日志并返回数组中第一个索引的div。我完全迷失了为什么这只是部分工作。

"2017": {
    "11": {
        "people": "大垣 晃,江古田 里佳,野村 康弘,中村 美加子,喜嶋 裕太"
    }
},
"2017": {
    "3": {
        "people": "松本 知実"
    }
},
"2017": {
    "3": {
        "people": "桐山 裕太,吉本 稔,藤本 稔"
    }
},
"2016": {
    "12": {
        "people": "中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔"
    }
},
"2016": {
    "6": {
        "people": "中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔"
    }
},
"2015": {
    "11": {
        "people": "野村 英樹,工藤 智也,山本 七夏,青田 舞"
    }
},
"2015": {
    "3": {
        "people": "喜嶋 学,若松 康弘,鈴木 直子,宮沢 幹"
    }
},

它最后只调用了数组的第一个索引和值。 虽然第一个控制台日志是......,但我确实注意到了 []“在这里”
这意味着在我的const和return()之间,console.log首先在任何父组件之前起作用。我的问题是我需要在这一点上使用componentWillMount()吗?显然它仍然有效,因为当我点击它正在传递第一个索引时,所以我认为异步不会在这里发挥..但我仍然是那么绿色的角...我来到这里仍然站在那里熄灭......

为什么我只会遍历数组的第一个索引而不是第二个?这是我的()? (也许这还不足以让我的代码帮助......有用的数据以获得有意义的答案)(抱歉长篇大论......)

1 个答案:

答案 0 :(得分:0)

代码的问题是当for到达第一个返回时,不会继续绘制其他div。

基本上,当你调用return时,渲染函数将在那里完成。与地图的不同之处在于它在映射时返回子项。

你在做什么基本上是这样的:

if (true) {
  return 'Something';
}

// Any coding at this point is not going to be executed.

这同样适用于for循环。