首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度嵌套对象的Normalizr用法

深度嵌套对象的Normalizr用法
EN

Stack Overflow用户
提问于 2019-03-10 03:37:43
回答 2查看 472关注 0票数 0

我正在尝试使用Normalizr来规格化和反规格化我在angular ngrx应用程序中使用的对象。

我在这里找到了几乎所有的解决方案:https://www.snip2code.com/Snippet/1028240/Deep-nested-tree-normalize-with-normaliz

代码语言:javascript
复制
import {normalize, Schema, arrayOf} from 'normalizr';

var data = [
    {
        "id": 1,
        "name": "О компании",
        "children": [
            {
                "id": 5,
                "name": "Руководство",
                "children": [
                    {
                        "id": 6,
                        "name": "Генеральный директор",
                        "children": [
                            {
                                "id": 20,
                                "name": "Зам гендира"
                            },
                            {
                                "id": 8,
                                "name": "Секретарша"
                            }
                        ]
                    },
                    {
                        "id": 7,
                        "name": "Главный бухгалтер",
                        "children": [
                            {
                                "id": 21,
                                "name": "Зам главбуха"
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        "id": 2,
        "name": "Вакансии",
        "children": [
            {
                "id": 9,
                "name": "Фронтенд-разработчик (JS)"
            },
            {
                "id": 10,
                "name": "Бэкэнд-разработчик (Java)"
            },
            {
                "id": 11,
                "name": "Оператор ЭВМ"
            }
        ]
    }
];

问题是,下面的解决方案中的许多函数都发生了变化,对于我来说,将相同的解决方案用于更新版本的normalizr有点困难。也许你们中的一些人知道如何将下面的解决方案重写为新的规范化?

代码语言:javascript
复制
var node = new Schema('nodes');
node.define({
    children: arrayOf(node)
});
var treeSchema = arrayOf(node);


var normalizedData = normalize(data, treeSchema);
console.log(normalizedData);
EN

回答 2

Stack Overflow用户

发布于 2019-03-10 03:49:59

您正在查看一个使用过时版本的Normalizr的示例。尝试读取the docs以获取新的API

票数 1
EN

Stack Overflow用户

发布于 2019-03-10 03:58:31

我做到了:)

代码语言:javascript
复制
 const node = new schema.Entity('nodes');
    node.define({
        children: [node]
    })
    const treeSchema = [node];
    const normalizedData = normalize(this.form,treeSchema);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55081208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档