Я использую версию Simple Schema для npm. У меня есть схема, определенная следующим образом:
const PageSchema = new SimpleSchema({
organizationId: String,
title: String,
published: Boolean,
slug: String,
content: {
type: Object,
optional: true
}
})
Значение 'content' предназначено для хранения данных, экспортированных из Draft JS с помощью функции convertToRaw в Draft. Однако, когда я очищаю данные с помощью Simple Schema, ключ/значение содержимого полностью удаляется из объекта. Никаких ошибок не выдается, он просто тихо удаляет этот узел.
Такого побочного эффекта я точно не ожидал. Есть ли что-то, чего я не понимаю в типе объекта Simple Schema? Ожидается ли, что я сначала сериализую объект как JSON или что-то в этом роде? Или, может быть, есть что-то в объектном литерале, экспортируемом Draft JS, что ему не нравится...?
Или возможно, что Draft JS делает что-то в своем экспорте объектов, что Simple Schema считает неортодоксальным? Это проблема с черновиком JS или проблема с простой схемой?
Вот console.log данных перед очисткой:
{ organizationId: 'JEsvMiJeTgexkAuzH',
title: 'Test Title',
published: true,
slug: 'test-title',
content: { entityMap: {}, blocks: [ [Object] ] } }
А вот так он выглядит после чистки:
{ organizationId: 'JEsvMiJeTgexkAuzH',
title: 'Test Title',
published: true,
slug: 'test-title' }
Любые указатели/помощь будут очень признательны! Раньше я не пытался использовать литералы объектов в качестве значений при работе с метеорными данными, поэтому я уверен, что мне не хватает какой-то фундаментальной вещи.
ОБНОВЛЕНИЕ: я попытался вставить данные без предварительного вызова clean(), и на самом деле это работает просто отлично. Однако это, конечно, далеко не идеальный обходной путь. Но это говорит мне, что нет ничего о данных, против которых возражают Монго или коллекции метеоров.