我一直在寻找类似的问题,但我发现的问题都没有真正符合我的问题......
编辑:整个想法是开发一个可重复使用的下拉组件,我将项目直接通过道具传递。这些项目必须是具有键(用于字段值)和显示属性(用于值文本)的对象。为了进行转换,我使用了itemify函数。所有这些代码都存在于包含下拉列表的表单组件中。
问题是这样的:
我有一组从服务器获取的对象。目标是保留这个对象数组(“旧对象”)并创建另一个对象(“新对象”)。这个新数组应该包含从第一个数组转换而来的新对象,但是:
newObject.key = oldObject.someProperty
newObject.display=oldObject.someOtherProperty
为了进行这种转换,我创建了“itemify”函数。
现在,实际结果。首先,我从服务器获取数据然后我通过转换获取 API 获得的数组来创建另一个数组。
getProfiles = async () => {
const result = await fetch(apiConfig.profilesAPI);
const body = await result.json();
if (body.data.length>0){
let temp = body.data;
console.log(temp);
let buffer = body.data.map(x=>itemify(x,"id","desc"));
this.setState((state,props)=>({
profiles: body.data,
profileItems: buffer
}));
}
}
编辑:这是我的全部itemify功能
function itemify(obj,id,display) {
let retVal = {
key: obj[id],
display: obj[display]
}
console.log("obj: "+obj);
console.log("retVal: "+retVal);
return retVal;
// return {key:obj[id],display:obj[display]} //prior version had only this line
}
如果我去检查控制台,我有这个:
第一个日志来自第一个代码片段
console.log(temp);
如果您需要更多代码,请告诉我。这部分代码还没有在 github 上。
繁花如伊
相关分类