Giả sử tôi đã Records sau được xác định bằng Immutable.js:Phân tích ghi lồng nhau trong Immutable.js
var Address = Immutable.Record({street: '', city: '', zip: ''});
var User = Immutable.Record({name: '', address: new Address()});
Làm thế nào để chuyển đổi đối tượng đồng bằng javascript vào kỷ lục tài khoản? Tôi đã thử các sau đây nhưng nó không cho kết quả mong đợi:
var user = new User({name: 'Foo', address: {street: 'Bar', city: 'Baz'}});
// => Record { "name": "Foo", "address": [object Object] }
Tôi biết rằng nó có thể tạo ra một cách rõ ràng kỷ lục Địa chỉ:
var user = new User({name: 'Foo', address: new Address({street: 'Bar', city: 'Baz'})});
// => Record { "name": "Foo", "address": Record { "street": "Bar", "city": "Baz", "zip": "" } }
Nhưng đó không phải là giải pháp tôi đang tìm kiếm . Hãy tưởng tượng bạn có Records lồng nhau nhiều cấp độ sâu và muốn lưu trữ/lấy dữ liệu dưới dạng JSON (ví dụ: trong cơ sở dữ liệu). Tôi muốn sử dụng cấu trúc bản ghi Người dùng thực tế làm thông tin lược đồ để tạo lại các bản ghi lồng nhau. Hoặc có cách nào tốt hơn để thể hiện dữ liệu không thay đổi được cấu trúc lồng nhau không?
Bạn có thể kiểm tra đối số 'reviver' trong' Immutable.fromJs', xem http://stackoverflow.com/questions/28639878/how-to-create-a-map-of-records-from-a-javascript- raw-object-with-immutable-js – OlliM
Để làm cho câu hỏi rõ ràng hơn, bạn nên nói rằng bạn muốn 'người dùng mới ({name: 'Foo', địa chỉ: {street: 'Bar', thành phố: 'Baz'}}). địa chỉ instanceof Address' là true. – Andy