如何使用 react-transition-group 动画退出
How to animate exit with react-transition-group
我正在使用 react-transition-group 创建一个弹出到视图中的模式。
const AnimatedModal: SFC<AnimatedModalProps> = (props: AnimatedModalProps) => (
<CSSTransition in={props.showWindow} unmountOnExit key={1} classNames={'modal-fade'} timeout={300}>
<BaseModal onCloseHandler={props.onCloseHandler} showWindow={props.showWindow}>
<CSSTransition
in={props.showWindow}
key={2}
unmountOnExit
classNames={props.animationClassNames}
timeout={300}
>
<ModalPanel onCloseHandler={props.onCloseHandler}>{props.children}</ModalPanel>
</CSSTransition>
</BaseModal>
</CSSTransition>
);
但是我很困惑如何让它在退出时动画化。因为一旦我 sed props.showWindow = false。它破坏了整个组件而不给它时间来动画。
是否有一些方法可以通过将其嵌套在 TransitionGroup 中来实现?
查看 <TransitionGroup>
组件的 childFactory 道具。我还没有尝试嵌套 <CSSTransition>
组件,但它通常可以像这样使用:
<TransitionGroup
childFactory={child => React.cloneElement(child)}
>
<CSSTransition
in={props.showWindow}
timeout={400}
classNames={classes.exitTransition}
>
<ChildComponent/>
</CSSTransition>
</TransitionGroup>
我正在使用 react-transition-group 创建一个弹出到视图中的模式。
const AnimatedModal: SFC<AnimatedModalProps> = (props: AnimatedModalProps) => (
<CSSTransition in={props.showWindow} unmountOnExit key={1} classNames={'modal-fade'} timeout={300}>
<BaseModal onCloseHandler={props.onCloseHandler} showWindow={props.showWindow}>
<CSSTransition
in={props.showWindow}
key={2}
unmountOnExit
classNames={props.animationClassNames}
timeout={300}
>
<ModalPanel onCloseHandler={props.onCloseHandler}>{props.children}</ModalPanel>
</CSSTransition>
</BaseModal>
</CSSTransition>
);
但是我很困惑如何让它在退出时动画化。因为一旦我 sed props.showWindow = false。它破坏了整个组件而不给它时间来动画。
是否有一些方法可以通过将其嵌套在 TransitionGroup 中来实现?
查看 <TransitionGroup>
组件的 childFactory 道具。我还没有尝试嵌套 <CSSTransition>
组件,但它通常可以像这样使用:
<TransitionGroup
childFactory={child => React.cloneElement(child)}
>
<CSSTransition
in={props.showWindow}
timeout={400}
classNames={classes.exitTransition}
>
<ChildComponent/>
</CSSTransition>
</TransitionGroup>