2016-07-04 4 views
2

Разрешено ли задавать одну переменную состояния реагирующего компонента, например this.state.foo = "bar", без вызова setState? Мне нужно изменить часть состояния в нескольких местах, и я не могу использовать оператор распространения объектов, а Object.assign слишком многословный. Как изменить только часть состояния без переопределения всего состояния?Изменение одной переменной состояния реакции

ответ

0

Просто так

this.setState({ foo: 'bar')}; 
+0

Вашего ответа будет извлечь выгоду из некоторого объяснения, но вы совершенно правы, нет необходимости создавать все новое состояние объекта самостоятельно. –

2

Вы должны использовать setState, а не переменные экземпляра, потому что это важно, что React знает об изменениях состояния, так что это может вызвать делает правильно.

Из-за различного алгоритма, используемого React на DOM, эффективно звонить setState так часто, как вам нравится.

Обратите внимание, что вызов setState на одной переменных оставит другие неизменным:

this.setState({ foo: 'bar' }); // Does not change foo2 
Смежные вопросы