В response.js, я знаю, что анимация может быть выполнена с использованием аддона ReactCSSTransitionGroup
. Как часть учебного процесса, я пытаюсь написать «vanilla js» для анимации компонента при входе и выходе.Reactjs анимирует покидающий компонент без использования аддона
Я придумал несколько простых кодов, как показано ниже, когда компонент ребенка установлен на входе
class Child extends React.Component {
constructor(props) {
super(props)
this.state = { opacity: 0 }
}
componentDidMount() {
this.setState({ opacity: 1 }) // change the opacity when the component is mounted
}
render() {
<div style={{ transition: 'opacity 0.3s', opacity: this.state.opacity }}>
I am a child component
</div>
}
}
class Parent extends React.Component {
render() {
return this.props.someProp === true ? <Child /> : null
}
}
Однако, я изо всех сил о том, как оживить компонент на выходе. componentWillUnmount
не работает с this.setState({ opacity: 0 })
, потому что компонент будет удален. Я пробовал читать исходный код в ReactCSSTransitionGroup
, но, похоже, не получил смысл. Может ли кто-нибудь предоставить простой пример кода, объясняющий, как должен быть реализован компонент при выходе?