Bindings for using react-navigation with react-native-magic-move 🐰🎩✨
react-native-magic-move
triggers its animations whenever it detects that a new MagicMove view has been mounted. However, navigation libraries such as react-navigation
keep components mounted for better performance and faster switching. This means that actions such as back navigation, tab switching or modal popups don't trigger an animation or don't trigger it consistently. This binding solves that problem by installing a hook that forwards the navigator scene information to react-native-magic-move
.
Installation
$ yarn add react-navigation-magic-move
Import the library somewhere at the top of your code
import "react-navigation-magic-move";
And make sure that your scenes are wrapped with <MagicMove.Scene>
Example
const Scene1 = () => (
<MagicMove.Scene>
...
<MagicMove.View
id="myView"
style={{
alignSelf: "center",
width: 100,
height: 100,
backgroundColor: "green",
borderRadius: 20
}}
/>
...
</MagicMove.Scene>
);
const Scene2 = () => (
<MagicMove.Scene>
...
<MagicMove.View
id="myView"
style={{
height: 300,
backgroundColor: "purple"
}}
/>
...
</MagicMove.Scene>
);
Magic-move will now animate your components when transitioning from one scene to another. If you want to opt-out of transitions, then use the disabled
prop to turn off transitions towards that scene or component.