Angular ngrx数据存储中的数据形状归一化

Angular ngrx数据存储中的数据形状归一化,angular,typescript,ngrx,ngrx-store,Angular,Typescript,Ngrx,Ngrx Store,我有一个从Firebase检索与用户关联的任务的应用程序。在下面的示例中,我检索了三个任务,但我无法理解为什么我的数据形状会出现如下所示: 我希望它看起来像这样: task: [{ ... }, { ... }, { ... }] 有没有可能像上面那样把我的商店夷为平地?这是我的代码,如下所示。映射发生在TaskActions.dataReceived: 这实际上是将现有状态任务对象设置为状态的副本,并将payload.payload对象与之合并 您的意思是将有效负载添加到任务阵列中吗?如果是

我有一个从Firebase检索与用户关联的任务的应用程序。在下面的示例中,我检索了三个任务,但我无法理解为什么我的数据形状会出现如下所示:

我希望它看起来像这样:

task: [{ ... }, { ... }, { ... }]
有没有可能像上面那样把我的商店夷为平地?这是我的代码,如下所示。映射发生在TaskActions.dataReceived:

这实际上是将现有状态任务对象设置为状态的副本,并将payload.payload对象与之合并

您的意思是将有效负载添加到任务阵列中吗?如果是这样,你应该这样做

if (payload.payload) {
   return {
      ...state,
      tasks: [...state.tasks,  payload.payload]
   }
}

return state

你能分享从firebase收到的回复样本吗?我建议使用@ngrx/effect规范化数据,然后发送一个操作来更新存储。
(state, payload) => ({
    ...state,
    tasks: payload.payload ? [ { ...state, ...payload.payload } ] : []
  })
if (payload.payload) {
   return {
      ...state,
      tasks: [...state.tasks,  payload.payload]
   }
}

return state