【发布时间】:2017-08-16 09:34:10
【问题描述】:
我在 React 中工作,我有以下数据结构,我试图从中生成选择下拉组件的选项,包括使用 map 和 ES6 存储三组团队成员的 OptGroups箭头函数。
"teams": [
{
"Group A":
[
{ "id": "A1", "name": "John" },
{ "id": "A2", "name": "Erin" },
{ "id": "A3", "name": "Steve" }
],
"Group B":
[
{ "id": "B1", "name": "Mark" },
{ "id": "B2", "name": "Doug" },
{ "id": "B3", "name": "Sam" },
{ "id": "B4", "name": "Kate" }
],
"Group C":
[
{ "id": "C1", "name": "Michelle" },
{ "id": "C2", "name": "April" },
{ "id": "C3", "name": "Mike" },
{ "id": "C4", "name": "Albert" }
]
}
]
在 JSON 与团队分组嵌套之前,我一直在使用这种语法:
let teamOptions = this.props.firm.teams.map(memb => <Option key={memb.id}>{memb.name}</Option>);
现在我已将团队成员嵌套到组中,但我无法找出处理此问题的正确方法。
我希望输出类似于:
<OptGroup label="Group A">
<Option value="A1">John</Option>
<Option value="A2">Erin</Option>
<Option value="A3">Erin</Option>
</OptGroup>
<OptGroup label="Group B">
<Option value="B1">Mark</Option>
<Option value="B2">Doug</Option>
<Option value="B3">Sam</Option>
<Option value="B4">Kate</Option>
</OptGroup>
<OptGroup label="Group C">
<Option value="C1">Michelle</Option>
<Option value="C2">April</Option>
<Option value="C3">Mike</Option>
<Option value="C4">Albert</Option>
</OptGroup>
【问题讨论】:
-
只是好奇,那些标签名不应该是小写的吗?
-
为什么
teams是一个包含一个对象的数组? -
@Bergi 在 React 中,组件通常用大写字母书写。
-
@Ksyqo 我认为这仅适用于 components (自定义或内置 classes 具有大写的构造函数名称,通常的约定),不适用于原始 HTML 标记.
-
@Bergi 哦,是的,你是对的。但它是否区分大小写?
标签: json dictionary ecmascript-6 jsx