【发布时间】:2019-10-11 01:45:20
【问题描述】:
我使用来自normalizr 包的denormalize 作为以下代码:
import { normalize, schema, denormalize } from 'normalizr';
const categoriesData = [
{ id: 1, name: 'category-1' },
{ id: 2, name: 'category-2' },
{ id: 3, name: 'category-3' },
{ id: 40, name: 'category-40' },
];
const subCategoriesData = [
{ id: 1, name: 'sub-category-a', category: 1 },
{ id: 2, name: 'sub-category-b', category: 2 },
{ id: 3, name: 'sub-category-c', category: 1 },
{ id: 4, name: 'sub-category-d', category: 3 },
{ id: 500, name: 'sub-category-e', category: 40 },
]
const category = new schema.Entity('categories');
const categories = new schema.Array(category);
const subcategory = new schema.Entity('subCategories');
const subcategories = new schema.Array(subcategory);
const normalizedData = normalize(categoriesData, categories);
const denormalizedData = denormalize(normalizedData.result, categories, normalizedData.entities);
console.log({ normalizedData });
console.log({ denormalizedData });
const normalizedData2 = normalize(subCategoriesData, subcategories);
const denormalizedData2 = denormalize(normalizedData2.result, subcategories, normalizedData2.entities);
console.log({ normalizedData2 });
console.log({ denormalizedData2 });
denormalizedData2 的输出是
{id: 1, name: "sub-category-a", category: 1},
...
而我期待的是:
{id: 1, name: "sub-category-a", category: { id: 1, name: 'category-1' } },
...
如何使用normalizr实现目标?
【问题讨论】:
-
因为这里没有将
categoriesData带入denormalizedData2的代码。 -
我编辑我的问题。
标签: javascript redux normalization normalizr