Реакторная пружина однокомпонентного монтажа / демонтажа показывает
Я пытаюсь создать анимацию, когда компонент монтирует / размонтирует с помощью React-spring:
import { Transition, animated } from 'react-spring'
...
export class CompName extends PureComponent<CompNamePropsType> {
static defaultProps = {
isExpanded: false,
}
render() {
const {
isExpanded,
...props
} = this.props
return (
<section className={styles.block} {...props}>
<Transition
from={{ opacity: 0 }}
enter={{ opacity: 1 }}
leave={{ opacity: 0 }}>
{isExpanded && (style => (
<animated.div style={{ ...style, background: "orange" }}>
<AnotherComp />
</animated.div>
))}
</Transition>
</section>
)
}
}
Но это просто не работает, и я получил ошибку children is not a function
, Что я сделал не так, и как я могу создать анимацию на компоненте mount/unmount с оберткой реагирующей пружиной?
1 ответ
Решение
Правильный путь:
<Transition items={isExpanded} native from enter leave>
{isExpanded => isExpanded && (props => <animated.div style={props} />)
</Transition>
Элементы в, могут быть одним элементом, как в вашем случае, а затем работать против элемента, который выходит. Причина этого заключается в том, что переход сохранит его, даже когда реальное состояние изменится, он все еще может безопасно перевести элемент в "старое" состояние.
API- интерфейс объясняется здесь: http://react-spring.surge.sh/transition