如何修改API返回响应字段 正确实现_id到id的字段重命名
问题根因
代码没达到预期是两个问题导致的:
WorkflowApi.getTransactionLog()返回的是日志列表,本质是元素为日志对象的数组。你直接对数组做对象展开、追加id属性,相当于给数组这个对象本身加了个自定义属性,完全没处理数组里的每一条日志;而且数组本身没有_id属性,你写的logs._id拿到的是undefined,和你运行后的实际结果一致。- 就算是处理单条日志对象,你现在的写法只是额外加了个
id字段,原来的_id还留着,两个字段同时存在,不算替换。
正确写法
遍历返回的日志数组,对每一条做字段转换:用解构把_id从原对象里拆出来,剩下的字段全部保留,再把拆出来的_id值赋给id字段合并回去,这样处理完的对象就只有id没有多余的_id了。
WorkflowApi.getTransactionLog().then(logs => { const newLogs = logs.map(item => { const { _id, ...restFields } = item return { id: _id, ...restFields } }) // 后续逻辑直接用处理好的newLogs就行 })
如果接口返回的是单条日志不是数组,直接用单条转换的逻辑即可:
const { _id, ...restFields } = singleLog const newLog = { id: _id, ...restFields }
内容的提问来源于stack exchange,提问作者Yuno
相关产品推荐
相关产品推荐

