Search code examples
reactjsreduximmutable.jsimmutable-collections

How to update value in a nested Immutable map


I am new to immutable.js and trying to figure out a way to update a nested map

Here is my object

let state = OrderedMap({
    'name': Map({ id: 'name', hint: 'Search by name', value: '' }),
    'job': Map({ id: 'job', hint: 'Search by job title', value: ''}),
    'state':  Map({ id: 'state', hint: 'Search by state', value: ''})
});

I am trying to set value of the 'name' object using a setIn function

state.setIn(['name', 'value'], 'Test');

The value is not getting updated as expected. Am I missing anything here


Solution

  • setIn doesn't mutate the original state, however it returns you another one so you would essentially have

    state = state.setIn(['name', 'value'], 'Test');