NavigationActions reference
All NavigationActions return an object that can be sent to the router using navigation.dispatch() method.
Note that if you want to dispatch react-navigation actions you should use the action creators provided in this library.
The following actions are supported:
- Navigate - Navigate to another route
 - Back - Go back to previous state
 - Set Params - Set Params for given route
 - Init - Used to initialize first state if state is undefined
 
Within a stack, you can also use:
- Reset - Replace current state with a new state
 - Replace - Replace a route at a given key with another route
 - Push - Add a route on the top of the stack, and navigate forward to it
 - Pop - Navigate back to previous routes
 - PopToTop - Navigate to the top route of the stack, dismissing all other routes
 
The action creator functions define toString() to return the action type, which enables easy usage with third-party Redux libraries, including redux-actions and redux-saga.
Navigate
The Navigate action will update the current state with the result of a Navigate action.
routeName- String - Required - A destination routeName that has been registered somewhere in the app's routerparams- Object - Optional - Params to merge into the destination routeaction- Object - Optional - (advanced) The sub-action to run in the child router, if the screen is a navigator. Any one of the actions described in this doc can be set as a sub-action.key- String - Optional - The identifier for the route to navigate to. Navigate back to this route if it already exists
import { NavigationActions } from 'react-navigation';
const navigateAction = NavigationActions.navigate({
  routeName: 'Profile',
  params: {},
  action: NavigationActions.navigate({ routeName: 'SubProfileRoute' }),
});
this.props.navigation.dispatch(navigateAction);
Reset
The Reset action wipes the whole navigation state and replaces it with the result of several actions.
index- number - required - Index of the active route onroutesarray in navigationstate.actions- array - required - Array of Navigation Actions that will replace the navigation state.key- string or null - optional - If set, the navigator with the given key will reset. If null, the root navigator will reset.
import { NavigationActions } from 'react-navigation';
const resetAction = NavigationActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'Profile' })],
});
this.props.navigation.dispatch(resetAction);
How to use the index parameter
The index param is used to specify the current active route.
eg: given a basic stack navigation with two routes Profile and Settings.
To reset the state to a point where the active screen was Settings but have it stacked on top of a Profile screen, you would do the following:
import { NavigationActions } from 'react-navigation';
const resetAction = NavigationActions.reset({
  index: 1,
  actions: [
    NavigationActions.navigate({ routeName: 'Profile' }),
    NavigationActions.navigate({ routeName: 'Settings' }),
  ],
});
this.props.navigation.dispatch(resetAction);
Replace
The Replace action replaces the route at the given key with another route.
key- _string - required - Key of the route to replace.newKey- _string - Key to use for the replacement route. Generated automatically if not provided.routeName- _string -routeNameto use for replacement route.params- object - Parameters to pass in to the replacement route.action- object - Optional sub-action.immediate* - boolean - Currently has no effect, this is a placeholder for whenStackNavigatorsupports animated replace (it currently does not).
Back
Go back to previous screen and close current screen. back action creator takes in one optional parameter:
key- string or null - optional - If set, navigation will go back from the given key. If null, navigation will go back anywhere.
import { NavigationActions } from 'react-navigation';
const backAction = NavigationActions.back({
  key: 'Profile',
});
this.props.navigation.dispatch(backAction);
SetParams
When dispatching SetParams, the router will produce a new state that has changed the params of a particular route, as identified by the key
params- object - required - New params to be merged into existing route paramskey- string - required - Route key that should get the new params
import { NavigationActions } from 'react-navigation';
const setParamsAction = NavigationActions.setParams({
  params: { title: 'Hello' },
  key: 'screen-123',
});
this.props.navigation.dispatch(setParamsAction);