diff --git a/packages/react-navigation/flow/react-navigation.js b/packages/react-navigation/flow/react-navigation.js index 39103210..3a3fd83f 100644 --- a/packages/react-navigation/flow/react-navigation.js +++ b/packages/react-navigation/flow/react-navigation.js @@ -487,6 +487,10 @@ declare module 'react-navigation' { }; declare export type NavigationScreenProp<+S> = { + ...$ObjMap< + _DefaultActionCreators, + ((...args: Args) => *) => (...args: Args) => boolean + >, +state: S, dispatch: NavigationDispatch, addListener: ( @@ -495,21 +499,6 @@ declare module 'react-navigation' { ) => NavigationEventSubscription, getParam: (paramName: string, fallback?: any) => any, isFocused: () => boolean, - // Shared action creators that exist for all routers - goBack: (routeKey?: ?string) => boolean, - navigate: ( - routeName: - | string - | { - routeName: string, - params?: NavigationParams, - action?: NavigationNavigateAction, - key?: string, - }, - params?: NavigationParams, - action?: NavigationNavigateAction - ) => boolean, - setParams: (newParams: NavigationParams) => boolean, // StackRouter action creators pop?: (n?: number, params?: { immediate?: boolean }) => boolean, popToTop?: (params?: { immediate?: boolean }) => boolean, @@ -760,6 +749,26 @@ declare module 'react-navigation' { }, }; + declare type _DefaultActionCreators = {| + goBack: (routeKey?: ?string) => NavigationBackAction, + navigate: ( + routeName: + | string + | { + routeName: string, + params?: NavigationParams, + action?: NavigationNavigateAction, + key?: string, + }, + params?: NavigationParams, + action?: NavigationNavigateAction + ) => NavigationNavigateAction, + setParams: (newParams: NavigationParams) => NavigationSetParamsAction, + |}; + declare export function getNavigationActionCreators( + route: NavigationRoute | NavigationState + ): _DefaultActionCreators; + declare type _RouterProp = { router: NavigationRouter, }; diff --git a/packages/react-navigation/src/react-navigation.js b/packages/react-navigation/src/react-navigation.js index 6ac714c1..b62a3633 100644 --- a/packages/react-navigation/src/react-navigation.js +++ b/packages/react-navigation/src/react-navigation.js @@ -71,6 +71,9 @@ module.exports = { get DrawerActions() { return require('./routers/DrawerActions').default; }, + get getNavigationActionCreators() { + return require('./routers/getNavigationActionCreators').default; + }, // Routers get StackRouter() { diff --git a/packages/react-navigation/src/react-navigation.web.js b/packages/react-navigation/src/react-navigation.web.js index d4daaf68..ddf90022 100644 --- a/packages/react-navigation/src/react-navigation.web.js +++ b/packages/react-navigation/src/react-navigation.web.js @@ -24,6 +24,9 @@ module.exports = { get DrawerActions() { return require('./routers/DrawerActions').default; }, + get getNavigationActionCreators() { + return require('./routers/getNavigationActionCreators').default; + }, // Routers get StackRouter() {