React/Javascript映射函数-返回数组
我有一个帐户列表,每个帐户上都有大量的属性。我需要向一个方法发送一个精简版本,其中只有两个字段的数组。我必须将一个名为React/Javascript映射函数-返回数组,javascript,reactjs,Javascript,Reactjs,我有一个帐户列表,每个帐户上都有大量的属性。我需要向一个方法发送一个精简版本,其中只有两个字段的数组。我必须将一个名为options的属性传递给我的SelectInput组件,该组件有一个ID和值的列表,它向上呈现一个下拉列表 <SelectInput options={ this.value.allAccountsList .map((item, index) => { new {
options
的属性传递给我的SelectInput组件,该组件有一个ID和值的列表,它向上呈现一个下拉列表
<SelectInput
options={
this.value.allAccountsList
.map((item, index) => {
new {
id: item.Id,
value: item.name
}
})
}/>
{
新{
id:item.id,
值:item.name
}
})
}/>
但我得到:
应为赋值或函数调用,而不是看到表达式
在这里使用map是否正确?如果是,我做错了什么?
map
是正确的,是的。问题在于new
关键字。使用对象文字创建对象时,不使用new
。另一个问题是箭头函数没有返回值。解决这两个问题,只需将new
更改为return
:
<SelectInput
options={
this.value.allAccountsList
.map((item, index) => {
return {
id: item.Id,
value: item.name
};
})
}
/>
您不需要在map回调中使用
new
试试这个:
<SelectInput
options={
this.value.allAccountsList
.map((item, index) => ({
id: item.Id,
value: item.name
}))
}/>
({
id:item.id,
值:item.name
}))
}/>
而不是这个
new {
id: item.Id,
value: item.name
}
这样做,
return {
id: item.Id,
value: item.name
}
将新的替换为应该处理它的返回。因此,映射回调应该使用new返回值,而不是返回导致错误消息的值 还有一个建议是,不要使用组件中的内联代码来转换数据,而是尝试将其提取出来,并使用它来真正帮助简化代码的读取和维护
<SelectInput
options={
this.value.allAccountsList
.map((item, index) => {
return {
id: item.Id,
value: item.name
}
})
}/>
{
返回{
id:item.id,
值:item.name
}
})
}/>
map在这个需求中使用是正确的,唯一的问题是使用return var newData=this.value.allAccountsList.map((item,index)=>{return{id:item.id,value:item.name})删除new
<SelectInput
options={
this.value.allAccountsList
.map((item, index) => {
return {
id: item.Id,
value: item.name
}
})
}/>