Jestem nowy w immutable.js i chciałbym lepiej zrozumieć, jak używać rekordów zaczynając od surowego obiektu JS.Jak utworzyć mapę rekordów z surowego obiektu javascript za pomocą Immutable.js?
Z Immutable.fromJS()
mogę stworzyć mapę przechodzącego surowego obiektu, na przykład:
var images = {
"1": {
id: "1",
urls: ["/medium/1.jpg", "/large/1.jpg"]
},
"2": {
id: "2",
urls: ["/medium/1.jpg", "/large/1.jpg"]
}
}
var imagesMap = Immutable.fromJS(images);
imagesMap
jest teraz mapa zawierająca inne mapy, po jednym dla każdego obrazu.
Chciałbym zamiast utworzyć mapę zawierającą rekordy, na przykład za pomocą Image
rekord zdefiniowany jako:
var ImageRecord = Immutable.Record({ id: undefined, urls: undefined })
Jak mogę mieć imagesMap
jako mapą ImageRecord
s? Czy jest coś, co mogę zrobić, przekazując odświeżacz do fromJS
, czy powinienem iść z "starym" podejściem?
// old approach
var imagesMap = Immutable.Map()
for (key in images) {
imagesMap.set(key, new ImageRecord(images[key]))
}
Dzięki, ja również znaleźć w docs że odnowiciel 'key' jest pusty ciąg dla najlepszych obiektów, dzięki czemu jeszcze łatwiej sprawdzić, czy wartość powinna zostać Record. – gpbl