【发布时间】:2020-07-23 22:16:06
【问题描述】:
我正在使用 react-transition-group 的标签在使用 react-router-v4 的路由之间创建动画。我正在使用标签根据状态的变化在我的代码中的路由之间切换。我遇到的问题是,当触发 a 时,组件会立即卸载,然后再给退出动画时间播放。新路线的动画效果正确。
我已尝试通过关注 React Transition Group 网站上的此页面来解决此问题:https://reactcommunity.org/react-transition-group/with-react-router
它承认我在立即卸载组件时遇到的问题,但我的解决方案似乎不起作用。
const routes = [
{ path: '/', name: 'Dashboard', Component: Dashboard },
{ path: '/detailedview', name: 'DetailedView', Component: DetailedView },
{ path: '/dashboardloop', name: 'DashboardLoop', Component: DashboardLoop },
]
function Example() {
return (
<Router>
<>
<Container className="container">
{routes.map(({ path, Component }) => (
<Route key={path} exact path={path}>
{({ match }) => (
<CSSTransition
in={match != null}
timeout={500}
classNames="page"
unmountOnExit
>
<div className="page">
<Component />
</div>
</CSSTransition>
)}
</Route>
))}
</Container>
</>
</Router>
)
}
ReactDOM.render((
<Example/>
), document.getElementById('root'));
对此的任何帮助将不胜感激!谢谢
【问题讨论】:
标签: reactjs react-router react-router-v4 react-transition-group