Должны ли вы когда-либо использовать this.setState() при использовании сокращения?

Если вы используете this.setState() при использовании сокращения? Или вы всегда должны отправлять действия и полагаться на реквизиты?

Ответ 1

Явное использование setState будет для компонентов пользовательского интерфейса, которые имеют локальное состояние отображения, но не имеют отношения к глобальному приложению. Например, логическое значение, представляющее, активно ли отображаемое конкретное выпадающее меню, не обязательно должно находиться в глобальном состоянии, поэтому его удобнее управлять состоянием компонента меню.

Другие примеры могут включать в себя состояние свернуть/развернуть линии на аккордеонном дисплее иерархии. Или, возможно, текущую выбранную вкладку в навигации по вкладкам. Однако в обоих этих примерах вы все равно можете обрабатывать состояние пользовательского интерфейса глобально. Например, это было бы необходимо, если бы вы хотели сохранить состояние expand/collapse в хранилище браузера, чтобы оно сохранялось при обновлении страницы.

На практике обычно проще реализовать такие элементы пользовательского интерфейса с локальным состоянием и реорганизовать их в глобальное состояние по мере необходимости.