Comments (4)
The key to animating React Router transitions is to add a unique key
prop to the route's children, so that the transition group recognizes that the components are changing.
Example of a Route component that animates its children's transitions:
class AppView extends React.Component {
render() {
const { pathname } = this.props.location;
const key = pathname.split('/')[1] || 'root';
const element = this.props.children || <div/>;
const elementToAnimate = React.cloneElement(element, { key });
return (
<div id="app-view">
<VelocityTransitionGroup
enter={{animation: "fadeIn"}}
leave={{animation: "fadeOut"}}>
{elementToAnimate}
</VelocityTransitionGroup>
</div>
);
}
}
(React 0.14, React Router 1.0.0-rc3, Velocity React 1.1.0)
from velocity-react.
I haven't much used react-router myself. Can anyone else chime in here?
The one I'm most familiar with is https://github.com/larrymyers/react-mini-router, which should work pretty trivially with VelocityTransitionGroup
. Just call renderCurrentRoute
as a child of VelocityTransitionGroup
.
from velocity-react.
Thanks, @mars!
I'll also add that for stuff like this, where your VelocityTransitionGroup
has single elements that are coming and going, you may need to use absolute positioning during the transition to get overlap right. Take a look at the LoadingCrossfadeComponent
in the demo source code to see one way of doing this.
from velocity-react.
Here's an example from the react-router repo. It uses ReactCSSTransitionGroup
instead of velocity-react, but the same design principles apply.
from velocity-react.
Related Issues (20)
- Conditional rendering inside VelocityTransitionGroup error in 1.4.0 HOT 2
- velocityHelpers is exported with a lowercase starting letter.
- examples
- Can't resolve velocity on create-react-app v2 HOT 5
- Update react-transition-group dep version
- No way to set duration or speed on VelocityTransitionGroup
- TypeError Cannot read property 'length' of null in velocity-component.js (v1.4.1) HOT 5
- Error caused by require TransitionGroup module directly HOT 4
- velocity-animate@^2.0.0 compatibility HOT 1
- next is not a function HOT 1
- slideDown finishes "too early" HOT 1
- Missing typings HOT 2
- Is this project still being developed? HOT 5
- Update react-transition-group HOT 3
- TransitionGroup CJS require not valid HOT 1
- Issue in Webpack production build
- VelocityTransitionGroup throws Strict Mode warnings HOT 3
- How to use sequences?
- TypeError: this.updater.enqueueCallback is not a function
- Upgrading to react 17 gives error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from velocity-react.