Updating the array object in React state using immutability helper
immutability, javascript, reactjs
Solution
One way to do it would be using `$set`
let index = 0;
let newState = update(this.state, {
a: {
b: {
[index]: {
c: { $set: "new value"}
}
}
}
});
this.setState(newState);
jsfiddle
Problem
I am updating an object within an array in React state using immutability helper. The object I want to modify is nested: ``` this.state = { a: { b: [{ c: '', d: ''}, ...] } } ``` I want to update the prop c within the nth element of b using immutability helper. The equivalent code without the immutability helper is: ``` const newState = Object.assign({}, this.state); newState.a = Object.assign({}, newState.a); newState.a.b = newState.a.b.slice(); newState.a.b[n] = Object.assign({}, newState.a.b[n]); newState.a.b[n].c = 'new value'; this.setState({ newState }); ``` I know the above code is a bit ugly. I am assuming the code using immutability helper will solve my problem. Thanks