#javascript #animation #reactjs #react-router #gsap
#javascript #Анимация #reactjs #реагирующий маршрутизатор #gsap
Вопрос:
Я пытаюсь анимировать страницы маршрутизатора react с TransitionGroup
gsap
помощью приложения и
class App extends React.Component {
render() {
return (
<div>
<ul>
//links
</ul>
<div className="detail">
<TransitionGroup component="div">
{this.props.children}
</TransitionGroup>
</div>
</div>
)
}
}
Компонент страницы, componentDidMount
вызывающий и анимирующий только действие, componentWillLeave
не работает.
class Page extends React.Component {
componentDidMount() {
// working
var dom = ReactDOM.findDOMNode(this)
TweenMax.fromTo(dom, 0.3, {y: 100, opacity: 0}, {y: 0, opacity: 1})
}
render() {
return (
<div>
Page
</div>
)
}
componentWillLeave() {
// not working
var dom = ReactDOM.findDOMNode(this)
TweenMax.fromTo(dom, 0.3, {y: 0, opacity: 1}, {y: 100, opacity:0})
}
}
Я новичок в react, у меня сложные анимации при загрузке и выходе каждой страницы, пожалуйста, помогите мне найти решение для устранения этой проблемы.
заранее спасибо.
Комментарии:
1. Вы уверены, что
componentWillUnmount
это не тот метод жизненного цикла, который вы ищете?2. Я пробовал
componentWillUnmount
его запуск, но не поддерживает анимацию.3. Я полагаю, что вы должны вызывать анимацию исчезновения из этого метода. Не возражаете ли вы изменить исходный вопрос на use
componentWillUnmount
? Это немного упростит рассуждение4.
componentWillUnmount
не работает с анимацией.5. Так или иначе,
componentWillLeave
это не метод жизненного цикла, поэтому он не вызывается в соответствии со спецификациями: facebook.github.io/react/docs/component-specs.html