javascript - 如何使用 .map() 迭代对象并创建数量
问题描述
我创建了一个带有标签和值键的对象。现在我想做的是使用 .map() 函数为对象中的每个项目创建。
// my object
const ageData = [...Array(71)].map((x, i) => ({ label: i + 10, value: i + 10 }));
//My object looks like 0: {label: 10, value: 10} 1: {label: 11, value: 11}
//What I want to create
<Item label=10 value=10 />
<Item label=11 value=11 />
//My current non-working solution
ageData.map(obj => <Item label=obj.label value=obj.value />)
解决方案
正如上面提到的评论者,语法需要一些工作。使用功能组件可能是这样的:
const Items = props => {
return (
<div>
{props.someArray.map(obj => (<Item label={obj.label} value={obj.value} />))}
</div>
)
}
然后从要在其中显示项目的功能组件或渲染方法返回以下内容:
<Items someArray={ageData} />
其中 ageDate 是您的数组。
请注意,您缺少{}
JSX 代码中的表达式周围,以及您从地图返回的 JSX 表达式周围的括号。
奖金:
如果你只需要它返回一个像上面这样的表达式,你可以像这样写你的功能组件更短:
const Items = props => (
<div>
{props.someArray.map(obj => (<Item label={obj.label} value={obj.value} />))}
</div>
)
推荐阅读
- php - 查找表中的重复记录及其相关的其他重复项
- node.js - socket.on 上的数据绑定问题
- c++ - 日期和当前日期之间的差异
- shell - 使用不带附件的 mpack 发送邮件
- python - SyntaxError:无法在“文档”上执行“评估”:字符串“//img [包含('1236548597')]'不是有效的XPath表达式
- javascript - 403禁止错误php
- vue.js - Vue js中的数据中的一行条件不起作用
- java - 使用多个组合框选择时出现空指针异常错误
- javascript - 如何从 HTML 中禁用 angular2-ladda 并防止 ladda 覆盖类
- php - Array_push in for 循环给出空响应