如何使用Normalizr标准化数据透视表数据?

时间:2019-12-05 08:55:10

标签: javascript normalizr

我想用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数组。因此,您看不到/到达每个项目内的数据透视表:(

0 个答案:

没有答案