我正在嘗試使用.set()
來設置不可變對象的值。值應該更新,但我無法使用.getIn()
之後的對象獲取。我認爲這是因爲它不會將對象的孩子設置爲不可變的。在immutable.js中有沒有任何方法可以讓我做到這一點?我知道我可以像.set(fromJS('rooms', roomMap))
一樣包裝fromJS()
中的對象,但這看起來很混亂。什麼是正確的方法來做到這一點?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