Flux: работа с модальными окнами

Как должно отображаться модальное окно при использовании реализации Flux. Я могу заставить компонент обновить свое состояние, чтобы отобразить модальное окно и закрыть его после завершения. Сохранение в модальном режиме вызовет действие и обновит магазин. Но модальное не будет, что его нужно закрыть. Затем мне нужно было бы создать другое событие или сохранить в магазине состояние модального окна.


person pra    schedule 22.09.2014    source источник


Ответы (1)


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

В вашем магазине не обязательно должен быть один атрибут, он может быть более сложным. Как наличие массива и логического значения. Когда произойдет сохранение, просто обновите свой массив и поместите логическое значение open=false, которое вы будете использовать в своем методе рендеринга, чтобы больше не отображать модальное окно. Для этого вам не нужно 2 действия, одно действие может обновить модель вашего магазина + обновить логическое значение до false. Сложность здесь заключается в том, чтобы знать, что положить в магазины. Как организовать свое состояние... Со временем это может стать довольно сложным. До сих пор я добивался больших успехов, используя автономные компоненты с их собственными хранилищами, такими как виджеты. Подробнее здесь.

В более общем виде вы можете поместить свойства макета в хранилища. Как курсор или положение мыши, открытые модальные окна, независимо от того, находится ли мышь над каким-либо элементом или нет...

person Sebastien Lorber    schedule 22.09.2014
comment
Я использую аналогичный подход, т.е. сохраняю состояние в магазине в настоящее время. Как вы сказали, сложность заключается в том, чтобы знать, что положить в магазины. Проверил ссылку, было бы более интересно, если бы у вас был пример приложения. - person pra; 23.09.2014
comment
Я согласен с этим. Мы делаем то же самое, но у нас есть хранилище, которое обрабатывает все модальные окна в определенном контексте. Итак, мы делаем ModalActionCreators.openModal('CreatePostModal'); - person stueynet; 30.03.2016