Проблема в нормализации данных викторины
Формат ответа:
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)
,