我想将用户的所有搜索保存为对象的关键字(搜索字段):
beforeState = fromJS({
showFilter: false,
loading: false,
error: false,
search: fromJS({})
})
afterState = fromJS({
showFilter: false,
loading: false,
error: false,
search:
key1: [{}, {},...],
key2: [{}, {}, {}...]
})
新数据:
const searchText = 'test'
const data = [{object1}, {object2},....]
const expectedResult = state
搜索必须是不可变的,因为它可以改变。 key1,key2 ......不需要,因为一旦他们开始改变就不会发生变化。
两个问题:
我想我需要在searchKey中使用fromJS函数才能得到一张地图,我的意思是,fromJS函数不会嵌套地图
var t = beforeState.get('search').constructor.name;
console.log(t) //gets Map but without fromJS gets Object
但是由于key1,key2中的数组不能变异,因此不需要另一个来自.JS的数组。是这样吗?
如何在搜索字段中插入key1,key2 ..值?
答案 0 :(得分:0)
使用mergeDeep,似乎没问题:
var boxes = Immutable.fromJS({
box1: {
id:1
},
box2: {
id:2
},
search: Immutable.fromJS({box3: {z:7}})
});
var data = Immutable.fromJS({
search: {
box3: {id:3}
}
});
var newBoxes = boxes.mergeDeep(data);
console.log(newBoxes.get('search').toJS());