diff --git a/packages/react-navigation/src/createNavigationContainer.js b/packages/react-navigation/src/createNavigationContainer.js index bfd08bbf..4f8d9461 100644 --- a/packages/react-navigation/src/createNavigationContainer.js +++ b/packages/react-navigation/src/createNavigationContainer.js @@ -5,6 +5,7 @@ import { polyfill } from 'react-lifecycles-compat'; import { BackHandler } from './PlatformHelpers'; import NavigationActions from './NavigationActions'; import invariant from './utils/invariant'; +import getNavigationActionCreators from './routers/getNavigationActionCreators'; import docsUrl from './utils/docsUrl'; function isStateful(props) { @@ -359,6 +360,11 @@ export default function createNavigationContainer(Component) { }; }, }; + const actionCreators = getNavigationActionCreators(nav); + Object.keys(actionCreators).forEach(actionName => { + this._navigation[actionName] = (...args) => + this.dispatch(actionCreators[actionName](...args)); + }); } navigation = this._navigation; } diff --git a/packages/react-navigation/src/routers/StackRouter.js b/packages/react-navigation/src/routers/StackRouter.js index ba314044..2f94620c 100644 --- a/packages/react-navigation/src/routers/StackRouter.js +++ b/packages/react-navigation/src/routers/StackRouter.js @@ -164,7 +164,7 @@ export default (routeConfigs, stackConfig = {}) => { getActionCreators(route, navStateKey) { return { - ...getNavigationActionCreators(route, navStateKey), + ...getNavigationActionCreators(route), ...getCustomActionCreators(route, navStateKey), pop: (n, params) => StackActions.pop({ diff --git a/packages/react-navigation/src/routers/SwitchRouter.js b/packages/react-navigation/src/routers/SwitchRouter.js index 01fb6195..cd375c1b 100644 --- a/packages/react-navigation/src/routers/SwitchRouter.js +++ b/packages/react-navigation/src/routers/SwitchRouter.js @@ -108,7 +108,7 @@ export default (routeConfigs, config = {}) => { getActionCreators(route, stateKey) { return { - ...getNavigationActionCreators(route, stateKey), + ...getNavigationActionCreators(route), ...getCustomActionCreators(route, stateKey), }; },