I want to create a transition animation for react router, but it's seems doesn't work (there is no transitions).
As you can see below, all what i did is create a component FadeRoute which use ReactCSSTransitionGroup to create an animation, then i use it in switch component of react-router-dom
Here my react code
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import { browserHistory } from "react-router";
import ReactCSSTransitionGroup from 'react-addons-css-transition-group'
function FadeRoute({ component: Component, ...rest }) {
return (
<Route {...rest} children={({ location, match }) => (
<ReactCSSTransitionGroup
transitionName="fade"
transitionEnterTimeout={300}
transitionLeaveTimeout={300}>
<Component />
</ReactCSSTransitionGroup>
)
} />
);
}
class App extends React.Component {
render() {
return (
<Router history={browserHistory}>
<Switch>
<FadeRoute exact path="/" component={Home} />
<FadeRoute exact path="/NextComponent" component={NextComponent} />
<FadeRoute component={NoMatch} />
</Switch>
</Router>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
Here the css code
.fade-enter {
opacity: 0.01;
}
.fade-enter.fade-enter-active {
opacity: 1;
transition: opacity 500ms ease-in;
}
.fade-leave {
opacity: 1;
}
.fade-leave.fade-leave-active {
opacity: 0.01;
transition: opacity 300ms ease-in;
}
could you please help me to find the where is the pb? thank you in advance