0
我有2個地圖對象(其中一個是來自網絡的初始狀態&),我需要將初始狀態與從網絡接收的數據合併。但是,我保留"hideDetails": true
來處理客戶端和服務器端的狀態。immutablejs&與新密鑰合併
//initial state
var j = Immutable.fromJS({
"staffs": {
"hasRecievedData": false,
"addingNewStaff": false,
"data": {
"0": {
"name" : null,
"age" : null,
"designation" : null,
"email" : null,
"hideDetails": true
}
}
}
});
// data from network
var m = Immutable.fromJS({
"staffs" : {
"0" : {
"name" : "name1",
"age" : "23",
"designation" : "work1",
"email" : "[email protected]"
},
"1" : {
"name" : "name2",
"age" : "22",
"designation" : "work2",
"email" : "[email protected]"
}
}
});
我要合併這兩個得到了新的狀態,如下,
var m = Immutable.fromJS({
"staffs" : {
"hasRecievedData": false,
"addingNewStaff": false,
"0" : {
"name" : "name1",
"age" : "23",
"designation" : "work1",
"email" : "[email protected]",
"hideDetails": true
},
"1" : {
"name" : "name2",
"age" : "22",
"designation" : "work2",
"email" : "[email protected]",
"hideDetails": true
}
}
});
如何使用合併功能,我實現嗎?
UPDATE1:
不知道這是正確與否,但我得到的結果與此,
f = j.merge({
hasRecievedData: true,
data: m.get("staffs").map(function(x){
return x.set("hideDetails",true);
})
});