normalizr 模式 - 子引用父
normalizr schema - child reference parent
尝试掌握如下所示的 normalizr、数据结构和模式:
const data = {
"name": "abc",
"outlet": [
{
"id": 1,
"retailer": {
"id": 1
}
},
{
"id": 2,
"retailer": {
"id": 1
}
}
]
}
const retailerSchema = new schema.Entity('retailers');
const outletSchema = new schema.Entity('outlets', {
retailer: retailerSchema
});
const normalized = normalize(data, {
retailers: [retailerSchema],
outlets: [outletSchema]
})
当前结果:
normalized.result == {name: "abc", outlets: [1, 2]}
normalized.entities.retailers == {1: {id: 1}}
normalized.entities.outlets == {1: {id: 1, retailer: 1}, 2: {id: 2, retailer: 1}}
是否可以添加基于独特零售商的奥特莱斯参考资料?例如
normalized.result == {name: "abc", outlets: [1, 2], retailers: [1]}
normalized.entities.retailers == {1: {id: 1, outlets: [1, 2]}}
normalized.entities.outlets == {1: {id: 1, retailer: 1}, 2: {id: 2, retailer: 1}}
Is it possible to add outlet references based on unique retailers?
不是真的。 Normalizr returns 的 result
始终采用与输入数据相同的格式。由于您的数据是 { name, outlet }
,因此这些是唯一存在于 result
输出中的键。
如果您在顶级对象(整个 data
结构)上有一个唯一标识符,您可以将 processStrategy
用于 schema.Entity
并随机排列,但是真的不推荐这样做。
尝试掌握如下所示的 normalizr、数据结构和模式:
const data = {
"name": "abc",
"outlet": [
{
"id": 1,
"retailer": {
"id": 1
}
},
{
"id": 2,
"retailer": {
"id": 1
}
}
]
}
const retailerSchema = new schema.Entity('retailers');
const outletSchema = new schema.Entity('outlets', {
retailer: retailerSchema
});
const normalized = normalize(data, {
retailers: [retailerSchema],
outlets: [outletSchema]
})
当前结果:
normalized.result == {name: "abc", outlets: [1, 2]}
normalized.entities.retailers == {1: {id: 1}}
normalized.entities.outlets == {1: {id: 1, retailer: 1}, 2: {id: 2, retailer: 1}}
是否可以添加基于独特零售商的奥特莱斯参考资料?例如
normalized.result == {name: "abc", outlets: [1, 2], retailers: [1]}
normalized.entities.retailers == {1: {id: 1, outlets: [1, 2]}}
normalized.entities.outlets == {1: {id: 1, retailer: 1}, 2: {id: 2, retailer: 1}}
Is it possible to add outlet references based on unique retailers?
不是真的。 Normalizr returns 的 result
始终采用与输入数据相同的格式。由于您的数据是 { name, outlet }
,因此这些是唯一存在于 result
输出中的键。
如果您在顶级对象(整个 data
结构)上有一个唯一标识符,您可以将 processStrategy
用于 schema.Entity
并随机排列,但是真的不推荐这样做。