Проблема в нормализации данных викторины

Формат ответа:

const fakeDatabase = {
  quizzes: [{
    id: v4(),
    title: 'Get started',
    text: 'hey',
    completed: true,
    hints: [{
      id: 1,
      text: 'Hint 1'
    }, {
      id: 2,
      text: 'Hint 2'
    }]
  }, {
    id: v4(),
    title: 'What are you waiting for?',
    text: 'ho',
    completed: true,
    hints: [{
      id: 3,
      text: 'Hint 3'
    }, {
      id: 4,
      text: 'Hint 4'
    }]
  }, {
    id: v4(),
    title: 'Remember! create more than you consume',
    text: 'let’s go',
    completed: false,
    hints: [{
      id: 5,
      text: 'Hint 5'
    }, {
      id: 6,
      text: 'Hint 6'
    }]
  }],
};

У меня есть следующая схема:

import { Schema, arrayOf } from 'normalizr';

export const hint = new Schema('hints');

export const quiz = new Schema('quizzes', {
  hints: [ hint ]
});

export const arrayOfQuiz = arrayOf(quiz);

Но после нормализации я получаю следующий ответ:

normalize(response, schema.arrayOfQuiz)

Итак, в основном мой тест нормализован правильно, но hints хранится как есть, я не знаю, что я что-то упустил.

1 ответ

Решение

Похоже, вы используете normalizr v2.x. Только в v3.0.0 был простой синтаксис массива [ hint ] добавлено. В v2.x вам нужно использовать arrayOf(hint),

Другие вопросы по тегам