.set()
を使用して不変オブジェクトの値を設定しようとしています。値は必要に応じて更新されますが、後で.getIn()
を使用してオブジェクトからフェッチできません。これは、オブジェクトの子を不変として設定していないからです。 immutable.jsにはこれを行うためのメソッドがありますか?私は.set(fromJS('rooms', roomMap))
のようにfromJS()
のオブジェクトをラップすることができますが、これは乱雑に思えます。これを行う正しい方法は何ですか?あなたはfromJS
によって作成された入れ子構造でset
を使用することはできませんImmutableJSオブジェクトの深い設定
const state = Immutable.fromJS({
rooms: false
});
const roomMap =
{
"roomid1": {
"id": "roomid1",
"name": "Room 101",
},
"roomid2": {
"id": "roomid2",
"name": "Room 102",
},
};
var newState = state.set('rooms', roomMap);
console.log(newState.getIn(['rooms', 'roomid1']));;
https://jsfiddle.net/z0a4p199/1/
'fromJS'機能がしかしのためのものであるものです。どちらのネストされたコレクションもそれぞれの 'Map'や' List'関数を使ってビルドしていますが、これは不合理なようです。 – stinodes