Я пытаюсь создать общий модальный компонент для своего приложения на основе модального компонента react-bootstrap.
Цель состоит в том, чтобы сделать его единственным в приложении, чтобы иметь возможность обмениваться модальным телом без повторного открытия мода, например, для форм входа/забывания-пароля/регистрации.
У меня есть модальный компонент в шаблоне потока с чем-то вроде
export default class ModalComponent extends Component {
handleMyFluxStoreChange() {
this.setState({
modalBody : this.modalStore.getModalBody(),
modalShow: this.modalStore.getModalToggle()
});
}
render() {
<Modal show={this.state.modalShow}>
{this.state.body}
</Modal>
}
}
Это прекрасно работает со скалярами, но вопрос в следующем:
Как поместить в тело модального окна весь компонент?
Технически это не проблема, я могу сделать это в создателе действий
export const showLoginModal = () => {
let modalBody = (<LoginModal />);
AppDispatcher.dispatch({
type: MODAL_CHANGE,
payload: {
body: modalBody
}
})
};
Вопрос в том, могу ли я поместить визуализированный компонент в Store in flux, или хранилище Flux должно хранить только простые хэши?
Как правильно это сделать в потоке?
Где я должен отображать этот компонент? Является ли создатель действия подходящим местом для этого?
Любая рекомендация по чтению будет очень признательна.