normalizr 模式中的嵌套数组

Nested arrays in normalizr schema

我需要规范化这些数据,这样我就有了一个列表数组和另一个待办事项。

const data = [ 
  { 
    _id: '1', 
    title: 'List1', 
    todos: [
      {
         _id: "11", 
         text: "Test1"
      }
    ] 
  },
  { 
    _id: '2', 
    title: 'List2', 
    todos: [
      {
         _id: "22", 
         text: "Test2"
      }
    ] 
  } 
];

这是我得到的:

const todo = new schema.Entity('todos',{},{ idAttribute: '_id'});
const list = new schema.Entity('lists',{todos:todo},{idAttribute: '_id'});
const normalizedData = normalize(data, list);
console.log(normalizedData);

我一直在尝试他们的示例,但其中 none 似乎适用于此数据。

如有任何帮助,我们将不胜感激。

您需要告诉架构 todos 是一个 todo 的数组并且您的输入数据是一个数组:

const list = new schema.Entity('lists', { todos: [ todo ]}, { idAttribute: '_id' });
const normalizedData = normalize(data, [ list ]);

const list = new schema.Entity('lists', { todos: new schema.Array(todo) } , { idAttribute: '_id' });
const normalizedData = normalize(data, new schema.Array(list));