Вы должны setState
с функцией, чтобы вы не изменяли state
напрямую.
this.setState(prevState => {
for(let k in prevState.content.text){
prevState.content.text[k].line = "changed";
}
return {content: prevState.content}
}
Редактировать:
Я не уверен, что изменить prevState
Непосредственно это хорошая вещь (пожалуйста, кто-нибудь поправьте меня), но вы также можете сделать
this.setState(prevState => {
let changedState = {...prevState}
for(let k in changedState.content.text){
changedState.content.text[k].line = "changed";
}
return {content: changedState.content}
}
Редактировать:
Как сказано в комментариях, {...prevState}
будет поверхностнымскопировать и он все еще может изменить состояние напрямую.Одним из решений этой проблемы является использование lodash cloneDeep