私は immutable.js が初めてで、生の JS オブジェクトからレコードを使用する方法をよりよく理解したいと思っています。
Immutable.fromJS()
生のオブジェクトを渡すマップを作成できます。次に例を示します。
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
は、画像ごとに 1 つずつ、他のマップを含むマップになりました。
Image
代わりに、次のように定義されたレコードを使用して、レコードを含むマップを作成したいと思います。
var ImageRecord = Immutable.Record({ id: undefined, urls: undefined })
どうすればsのimagesMap
マップとして持つことができImageRecord
ますか? にリバイバーを渡してできることはありますかfromJS
、それとも「古い」アプローチを使用する必要がありますか?
// old approach
var imagesMap = Immutable.Map()
for (key in images) {
imagesMap.set(key, new ImageRecord(images[key]))
}