“react-router-dom”: “^4.3.1”,
“react-transition-group”: “^2.4.0”
import React from 'react';
import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
import { TransitionGroup, CSSTransition } from 'react-transition-group';
import Page1 from './pages/page1';
import Page2 from './pages/page2';
import Page3 from './pages/page3';
import './style/animation.css';
export default class AppRouter extends React.Component {
render() {
return (
<Router >
<Route render={({ location }) => {
console.log(location)
return (
<TransitionGroup>
<CSSTransition key={location.pathname} classNames='right' timeout={500}>
<Switch>
<Route exact path='/' component={Page1} />
<Route path='/page2' component={Page2} />
<Route path='/page3' component={Page3} />
</Switch>
</CSSTransition>
</TransitionGroup>
)
}} />
</Router>
)
}
}
存在疑问:
1.为什么动画部分必须在子路由内部,不放在里面 动画不生效
2.从page1跳转到page2,为什么这个被CSSTransition包含的元素 enter和exit同时出现
3.打印了组件的生命周期函数,componentWillMount 再切换页面时会进入多次