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