Search code examples
arraysreactjsreduxreact-reduxjavascript-objects

How to modify a certain object in array of objects that stored in redux state


let's say I've data stored in a redux state like this

state = {
records : [
    {id:"1", name:"foo", city:"A"},
    {id:"2", name:"bar", city:"B"},
    {id:"3", name:"abc", city:"C"},
]
}

how do I change any attribute of any record dynamically using immutable way?


Solution

  • Something like this:

    case 'SOMETHING': 
    const recordsCopy = {...state.records};
    //change recordsCopy ...
    const recordToChange = recordsCopy.find(x => x.id === '3')
    if(recordToChange) {
       recordToChange.name = 'new name';
    }
    return {...state, records: [...recordsCopy]}