我有像这样的服务器的异常响应
[
{
id: 1,
name: "Alexandr",
children: [
{
id: 2,
name: "Stephan"
},
{
id: 3,
name: "Nick"
}
]
},
{
id: 4,
name: "David",
children: [
{
id: 3,
name: "Nick"
},
{
id: 6,
name: "Paul"
}
]
}
]
我想将这种回应标准化,以便与所有人接受一种用语。所以,我使用normalizr go flat this
const people= new Schema('people');
people.define({
Children: arrayOf(people),
NotOwnChildren: arrayOf(people)
});
let normalized = normalize(response.data, arrayOf(people));
但这样做我得到一个错误 “当合并两个人时,在他们的”儿童“价值中发现了不平等的数据。使用较早的价值。” 如何调整normalizr以合并具有相同ID的人(更新具有最新数据的实体)?
答案 0 :(得分:3)
看起来你得到两个people
,其中一个键的值不同(我假设您的示例输入被截断)。
对于Normalizr @ 2:
您可以使用自定义implementation of map功能手动解决问题。
对于Normalizr @> = 3.0.0,您需要使用mergeIntoEntity
。