TransitionGroup¶
Компонент <TransitionGroup>
управляет набором компонентов перехода (<Transition>
и <CSSTransition>
) в списке. Как и компоненты перехода, <TransitionGroup>
представляет собой машину состояний для управления монтированием и размонтированием компонентов во времени.
Рассмотрим пример ниже. По мере удаления или добавления элементов в TodoList пропс in
автоматически переключается компонентом <TransitionGroup>
.
Обратите внимание, что <TransitionGroup>
не определяет никакого поведения анимации! То, как именно анимируется элемент списка, зависит от отдельного компонента перехода. Это означает, что вы можете смешивать и сочетать анимации для разных элементов списка.
Пример¶
Свойства¶
component¶
По умолчанию <TransitionGroup>
отображает <div>
. Вы можете изменить это поведение, предоставив параметр component
. Если вы используете React v16+ и хотите избежать обертывающего элемента <div>
, вы можете передать component={null}
. Это полезно, если обертывающий div
нарушает ваши стили css.
- type:
any
- default:
'div'
children¶
Набор компонентов <Transition>
, которые переключают "in" и "out" по мере их выхода. Группа <TransitionGroup>
будет вводить определенные пропсы перехода, поэтому не забудьте распространить их, если вы оборачиваете <Transition>
, как в нашем примере с <Fade>
.
Хотя этот компонент предназначен для нескольких дочерних элементов Transition
или CSSTransition
, иногда вам может понадобиться один дочерний элемент перехода с содержимым, которое вы хотите переходить из одного элемента в другой при его изменении (например, маршруты, изображения и т.д.) В этом случае вы можете изменить пропс key
дочернего элемента перехода при изменении его содержимого, что заставит TransitionGroup
переходить из одного элемента в другой.
- type:
any
appear¶
Удобный параметр, который включает или отключает анимацию появления для всех детей. Обратите внимание, что указание этого параметра отменяет любые значения по умолчанию, установленные для переходов отдельных детей.
- type:
boolean
enter¶
Удобный параметр, который включает или отключает анимацию входа для всех детей. Обратите внимание, что указание этого параметра отменяет любые значения по умолчанию, установленные для переходов отдельных детей.
- type:
boolean
exit¶
Удобный параметр, который включает или выключает анимацию выхода для всех детей. Обратите внимание, что указание этого параметра отменяет любые значения по умолчанию, установленные в переходах отдельных детей.
- type:
boolean
childFactory¶
Вам может понадобиться применить реактивные обновления к выходящему дочернему элементу. Обычно это делается с помощью cloneElement
, однако в случае выходящего дочернего элемента элемент уже удален и недоступен для потребителя.
Если вам необходимо обновлять дочерний элемент по мере его выхода, вы можете предоставить childFactory
, чтобы обернуть каждый дочерний элемент, даже тот, который выходит.
- type:
Function(child: ReactElement) -> ReactElement
- default:
(child) => child