Использование Normalizr для глубокого вложенного объекта - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь использовать Normalizr для нормализации и денормализации объекта, который я использую в своем угловом приложении ngrx.

Я нашел почти решение для этого здесь: https://www.snip2code.com/Snippet/1028240/Deep-nested-tree-normalize-with-normaliz

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": "Оператор ЭВМ"
            }
        ]
    }
];

Дело в том, что многие функции из приведенного ниже решения изменились, и мне немного сложно использовать одно и то же решение сболее новый выпуск нормализр.Может быть, некоторые из вас знают, как переписать приведенное ниже решение в новый нормализр?

var node = new Schema('nodes');
node.define({
    children: arrayOf(node)
});
var treeSchema = arrayOf(node);


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

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Вы смотрите пример использования устаревшей версии Normalizr.Попробуйте прочитать документы для новых API

0 голосов
/ 09 марта 2019

Я сделал это:)

 const node = new schema.Entity('nodes');
    node.define({
        children: [node]
    })
    const treeSchema = [node];
    const normalizedData = normalize(this.form,treeSchema);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...