Я пытаюсь реализовать CSSTransition в модальном окне в моем проекте. Проблема в том, что я использую модули css.
Мой метод рендеринга модального окна
render() {
return (
<Aux>
<Backdrop
show = {this.props.show}
clicked = {this.props.modalClosed}/>
<CSSTransition
in = {this.props.show}
timeout = {1000}
mountOnEnter
unmountOnExit
classNames = {?}
>
<div
className = {classes.Modal}
>
{this.props.children}
</div>
</CSSTransition>
</Aux>
)
}
Мой Modal.css
.fade-enter {
}
.fade-enter-active {
animation:openModal 0.4s ease-out forwards;
}
.fade-exit{
}
.fade-exit-active{
animation: closeModal 0.4s ease-out forwards;
}
Что мне передать атрибуту classNames в компоненте CSSTransition, чтобы он заработал?






Решается введением таких классов:
render() {
return (
<Aux>
<Backdrop
show = {this.props.show}
clicked = {this.props.modalClosed}/>
<CSSTransition
in = {this.props.show}
timeout = {1000}
mountOnEnter
unmountOnExit
classNames = {{
enterActive: classes["fade-enter-active"],
exitActive:classes["fade-exit-active"]
}}
>
<div
className = {classes.Modal}
>
{this.props.children}
</div>
</CSSTransition>
</Aux>
)
}
Вы определили класс .Modal в своем Modal.css?
JSX:
<CSSTransition in = {focused} timeout = {500} classNames = {{
enterActive: styles.MyClassEnterActive,
enterDone: styles.MyClassEnterDone,
exitActive: styles.MyClassExit,
exitDone: styles.MyClassExitActive
}}>
<span className = {styles.MyClass}>animated</span>
</CSSTransition>
Модуль CSS:
.MyClass {
position: absolute;
left: 5px;
}
.MyClassEnterActive {
left: 15px;
transition: left 500ms;
}
.MyClassEnterDone {
left: 15px;
}
.MyClassExit {
left: 15px;
}
.MyClassExitActive {
left: 5px;
transition: left 500ms;
}
Gracias Лайонел!
когда я пытаюсь это сделать, я получаю undefined для классов div, которые я оборачиваю.