我正在使用redux-thunk和normalizr创建数据模式。首先,我从 fetch 调用(未显示)中获取账单列表,然后对于响应中的每个项目,我使用账单的 ID 进行单独的 API 调用(如下所示)以获取与该账单相关的一些条款。外部提取响应中未提供该数据。
我正在为每个账单获取规范化的条款实体,在我发送状态之前,我将每个实体对象替换为包含相关账单列表的副本。
(下面的代码工作正常。)我的问题是:如果我用添加属性termEntities[key]
的自身副本替换每个relatedBills
,这算作变异吗?可以在调度之前弄乱 normalizr 实体数据,还是这是不好的做法?
谢谢!
export function fetchBillDetails(billId) {
return dispatch => {
return fetch(`${API}/${billId}`)
.then(response => response.json())
.then(json => {
const terms = json.terms;
const normalizedTerms = normalize(terms, arrayOfTermSchema);
const termEntities = normalizedTerms.entities.terms;
for (const key in termEntities) {
if (termEntities.hasOwnProperty(key)) {
termEntities[key] = Object.assign({}, termEntities[key], {
relatedBills: billId
})
}
}
dispatch(receiveBillTerms(
billId,
normalizedTerms.entities,
normalizedTerms.result
));
});
}
}