2016-11-22 52 views
0

我有一个不变的地图对象,一个Map对象中,如下所示:更新地图内的地图

let initialState = Immutable.fromJS({errors:{}}); 

如何更新错误图,以添加和删除条目?

例如:

来自:

Immutable.fromJS({errors:{}}) 

到:

Immutable.fromJS({errors:{"foo":"My foo error"}}) 

到:

Immutable.fromJS({errors:{"foo":"My foo error", "baz": "A baz error"}}) 

到:

Immutable.fromJS({errors:{"baz": "A baz error"}}) 

回答

1

您可以使用setIndeleteIn

const initialState = Immutable.fromJS({errors:{}}); 
const nextState = initialState.setIn(['errors', 'foo'], 'bar').setIn(['errors', 'bar'], 'a bar error'); 
console.log(nextState.toJS()); 
const finalState = nextState.deleteIn(['errors', 'bar]); 
console.log(finalState.toJS()); 

输出:

{ 
    errors: { 
     foo: "a foo error", 
     bar: "a bar error" 
    } 
} 
{ 
    errors: { 
     foo: "a foo error" 
    } 
} 

```