I use the following code in react in order to update state. state
should finally looks like this:
this.state.output = {
\'abc\':{
value: 10
}
object spread syntax is recent spec. Here is the documentation for it: using-object-spread-operator
Below code uses Object.assign
method instead :
handleChange = (data) => {
this.setState(prevState => ({
output: Object.assign({}, prevState, {
[data.id]: data
})
})
)}
Because you forgot to add the other property and their values, update the object like this:
handleChange = (data) => {
this.setState(prevState => {
return {
output: {
...prevState.output, // notice this
[data.id]: { ...data },
},
}
})
}
Or simply:
handleChange = (data) => {
this.setState(prevState => ({
output: {
...prevState.output,
[data.id]: { ...data },
},
})
)}