Resetting the navigation stack for the home screen (React Navigation and React Native)
This is How I do it :
reset(){
return this.props
.navigation
.dispatch(NavigationActions.reset(
{
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'Menu'})
]
}));
}
at least replace 'Menu' with 'Home'. You may also want to adapt this.props.navigation to your implementation.
In version > 2 follow this:
import { NavigationActions, StackActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'MainActivity' })],
});
this.props.navigation.dispatch(resetAction);
React Navigation 5.x
import { CommonActions } from '@react-navigation/native';
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);
Available in Snack
Here is how I do it:
import { NavigationActions } from 'react-navigation'
this.props.navigation.dispatch(NavigationActions.reset({
index: 0,
key: null,
actions: [NavigationActions.navigate({ routeName: 'ParentStackScreen' })]
}))
The important part is
key: null
.
That wipes the stack while navigating from a child navigator to a parent navigator.
Do that if you get this error:
For animations, I use
// https://github.com/oblador/react-native-animatable
import * as Animatable from 'react-native-animatable'
I just control all the animations myself. Put them on any component you want by wrapping it with <Animatable.View>
.