Как анимировать выход с помощью 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?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
0
997
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ознакомьтесь с реквизитом ребенокФабрика компонента <TransitionGroup>. Я не пробовал его с вложенными компонентами <CSSTransition>, но обычно его можно использовать так:

 <TransitionGroup
     childFactory = {child => React.cloneElement(child)}
  >
    <CSSTransition 
      in = {props.showWindow} 
      timeout = {400} 
      classNames = {classes.exitTransition}
    >
      <ChildComponent/>
    </CSSTransition>
  </TransitionGroup>

Другие вопросы по теме