我想用Normalizr标准化API数据。
API数据
store: {
orders: [
{
items: [
{
pivot: { id: 15, unique_title: 'title', ... },
...
}
],
...
}
],
...
}
我的模式
const itemPivotSchema = new schema.Entity('item_pivot_data');
const itemSchema = new schema.Entity('items', {
pivot: itemPivotSchema
});
const orderSchema = new schema.Entity('orders', {
items: [ itemSchema ]
});
const storeSchema = new schema.Entity('stores', {
orders: [ orderSchema ]
});
输出(实体)
stores: Object, // 1 object
items: Object, // 4 objects
item_pivot_data: Object, // 24 objects
orders: {
1: {
// currently I get only item ids and no way to reach pivot data
items: [ 1, 1, 1 ]
// how to achieve this result?
items: [
{ item_id: 1, pivot_id: 15 },
{ item_id: 1, pivot_id: 16 },
{ item_id: 1, pivot_id: 17 }
]
}
}
编辑: 我还尝试通过processStrategy方法添加数据透视表数据,但是不幸的是,值(实体)似乎已经在父级上进行了规范化,并且您只能看到一个id数组。因此,您看不到/到达每个项目内的数据透视表:(