У меня есть компонент Hub, который я потребляю, который поддерживает некоторые компоненты в качестве параметров, которые отображаются в строке. Например. Сохранить (обозначается как компонент B).Каков правильный способ запустить действие с состоянием братьев и сестер в React/Flux?
Я отризываю свой компонент пользовательского интерфейса «А» внутри этого концентратора. При нажатии кнопки «Сохранить» (то есть компонент B) концентратора я хочу отправить состояние компонента A (мой пользовательский интерфейс) на сервер.
Мое ограничение: - Я не могу сохранить состояние на уровне концентратора, потому что его слишком высокий уровень иерархии и многие другие компоненты также отображаются на других вкладках в зависимости от URL-адреса.
подходов Я рассмотрел:
- Используйте реф, чтобы получить состояние компоненты А когда кнопка Save нажата.
- Передайте объект от концентратора к компоненту A. Компонент A сохранит свое состояние в этом объекте, чтобы всякий раз, когда родитель нуждается в состоянии, он доступен для него.
- Каскадирование действий. В этом случае компонент A будет прослушивать действие (возможно, но сильно отклонено, так как оно нарушает поток).
Как правило, в архитектуре Flux состояние живет вне компонентов полностью .. поэтому предположительно вы отправите действие, которое будет: a) получить состояние из правильного хранилища, а затем b) вызвать побочный эффект (сохранить на сервер), затем c) известить ваше дерево компонентов, которое сохранили. Есть ли причина, по которой вы не можете сохранить состояние компонента в хранилище потоков? – azium
Я делаю формы и текущие данные формы находятся в состоянии. Более ранние данные формы хранятся. Сравнение между ними говорит мне, следует ли включать сохранение или нет. –