Причина, по которой это не работает, заключается в том, что присвоение значений внутри объекта имеет синтаксис, отличный от присвоения нормальной переменной.
Для уточнения:
При создании объекта вы используете этот синтаксис :
let myObj = {
foo: 'bar'
}
Или вы можете сделать:
let myObj = {}
myObj.foo = 'bar'
Но вы не можете сделать
let myObj = {
myObj.foo: 'bar'
}
Что вы делаете с функцией setState
создает новый объект и передает его функции.
Вы должны так же легко написать это так:
const newState = { count: this.state.count + 1 }
this.setState(newState);
Вот почему вы должны использовать первый синтаксис.
Тогда setState
объединяет данный объект с текущим this.state
и при следующем рендеринге this.state
будет содержать обновленные значения.