Пусть я следующие отчеты определяются с помощью Immutable.js:Разбор вложенных записей в Immutable.js
var Address = Immutable.Record({street: '', city: '', zip: ''});
var User = Immutable.Record({name: '', address: new Address()});
Как преобразовать обычный JavaScript Object в записи пользователя? Я попытался следующие, но это не дает ожидаемого результата:
var user = new User({name: 'Foo', address: {street: 'Bar', city: 'Baz'}});
// => Record { "name": "Foo", "address": [object Object] }
Я знаю, что можно явно создать адресную запись:
var user = new User({name: 'Foo', address: new Address({street: 'Bar', city: 'Baz'})});
// => Record { "name": "Foo", "address": Record { "street": "Bar", "city": "Baz", "zip": "" } }
Но это не решение, которое я ищу , Представьте, что у вас есть записи, вложенные на несколько уровней в глубину и вы хотите хранить/извлекать данные как JSON (например, в базе данных). Я хотел бы использовать фактическую структуру записей пользователя как информацию схемы для воссоздания вложенных записей. Или существует лучший способ представления вложенных и структурированных неизменяемых данных?
Вы можете проверить аргумент 'reviver' в' Immutable.fromJs', см. Http://stackoverflow.com/questions/28639878/how-to-create-a-map-of-records-from-a-javascript- raw-object-with-immutable-js – OlliM
Чтобы сделать вопрос понятным, вы должны указать, что хотите использовать новый пользователь ({name: 'Foo', адрес: {street: 'Bar', city: 'Baz'}}). адрес instanceof Address' должен быть правдой. – Andy