From 98fd650c355c28f2a1c9a4e42b9a2373ec1c68ea Mon Sep 17 00:00:00 2001 From: Eric Vicenti Date: Mon, 7 May 2018 12:56:35 -0700 Subject: [PATCH] Navigation Action Helpers at root (#4151) --- packages/react-navigation/src/createNavigationContainer.js | 6 ++++++ packages/react-navigation/src/routers/StackRouter.js | 2 +- packages/react-navigation/src/routers/SwitchRouter.js | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) 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), }; },