Нет ничего плохого в том, что некоторые компоненты имеют состояние.
zerkms
3
Это полностью зависит от того, где используется состояние. Думайте о магазинах redux как о глобальных. Все, что не должно быть глобальным, может оставаться приватным для компонента и его дочерних элементов.
azium
Ответы:
139
Ясное использование setStateбудет для компонентов пользовательского интерфейса, которые имеют локальное состояние отображения, но не актуальны для глобального приложения. Например, логическое значение, которое указывает, активно ли отображается конкретное раскрывающееся меню, не обязательно должно находиться в глобальном состоянии, поэтому им удобнее управлять состоянием компонента меню.
Другие примеры могут включать в себя состояние свертывания / развертывания строк при отображении иерархии гармошкой. Или, возможно, текущая выбранная вкладка в навигации по вкладкам. Однако в обоих этих примерах вы все равно можете выбрать глобальную обработку состояния пользовательского интерфейса. Например, это было бы необходимо, если вы хотите сохранить состояние развертывания / свертывания в хранилище браузера, чтобы оно сохранялось при обновлении страницы.
На практике обычно проще всего реализовать такие элементы пользовательского интерфейса с локальным состоянием и при необходимости реорганизовать их в глобальное состояние.
Ответы:
Ясное использование
setState
будет для компонентов пользовательского интерфейса, которые имеют локальное состояние отображения, но не актуальны для глобального приложения. Например, логическое значение, которое указывает, активно ли отображается конкретное раскрывающееся меню, не обязательно должно находиться в глобальном состоянии, поэтому им удобнее управлять состоянием компонента меню.Другие примеры могут включать в себя состояние свертывания / развертывания строк при отображении иерархии гармошкой. Или, возможно, текущая выбранная вкладка в навигации по вкладкам. Однако в обоих этих примерах вы все равно можете выбрать глобальную обработку состояния пользовательского интерфейса. Например, это было бы необходимо, если вы хотите сохранить состояние развертывания / свертывания в хранилище браузера, чтобы оно сохранялось при обновлении страницы.
На практике обычно проще всего реализовать такие элементы пользовательского интерфейса с локальным состоянием и при необходимости реорганизовать их в глобальное состояние.
источник
setState
совершенно нормально : redux.js.org/docs/faq/…