Хорошо, у меня есть идея о создании удобных и родных переходов страницы с помощью React. Я привел пример того, как страницы должны переходить между собой - you can check it here.Таймаут для компонента unmount
И затем я начал программировать его с помощью React. И я остановился.
Скажем, у меня есть компонент Сцена:
export default class Scene extends React.Component {
constructor(props) {
super(props)
this.state = {
beforeUnmount: false
}
}
render() {
return (
<div
className={ classNames({ "scene-container": true, "scene-unmount": this.state.beforeUnmount })}
style={{ backgroundColor: this.props.color}}>
<h1 style={{ marginTop: "25%", textAlign: "center" }}> Scene { this.props.id } </h1>
{ this.props.children }
</div>
)
}
}
и вид тестовую страницу, которая использует эту сцену (AnotherTestPage в основном то же самое):
export default class TestPage extends React.Component {
constructor(props) {
super(props)
}
render() {
return (
<div>
<Helmet
title={`Scene ${this.props.params.id}`}
meta={[{name: 'description', content: 'Index page'}]}
/>
<Scene id={ this.props.params.id } color= {`#${this.props.params.color}`}>
<DefaultLink to="/" text="Go to Index" />
<DefaultLink to="/another" text="Go to Another" />
</Scene>
</div>
)
}
}
и маршрутизатор
export function createRoutes(history, store) {
return (
<Router>
<Route component={App}>
<Route path='/' component={IndexPage} />
<Route path='/forms' component={Forms} />
<Route path='/scenes/:id/:color' component={TestPage} />
<Route path='/another' component={AnotherTestPage} />
</Route>
</Router>
)
}
Перед тем, как текущий вид размонтируется, должна быть оживленная анимация сцены, и в то же время ne xt просмотр должен затухать. И моя проблема в том, что я не знаю, как это сделать, как тайм-аут размонтирования представления. Будем очень благодарны, если кто-нибудь поможет мне!
Да , я уже исследовал это, но ReactCSSTransitionGroup, если я правильно понял, позволяет использовать ** тот же ** переход на обоих маршрутах, между тем мне нужны ** разные ** переходы на моих маршрутах –
Хорошо, это точка , Я наконец понял, как это работает) Большое вам спасибо! –