1

我正在使用redux-thunknormalizr创建数据模式。首先,我从 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
        ));
    });
  }
}

4

0 回答 0