diff --git a/types/react-navigation/index.d.ts b/types/react-navigation/index.d.ts index 2fdde0448e..50f384c34e 100644 --- a/types/react-navigation/index.d.ts +++ b/types/react-navigation/index.d.ts @@ -420,12 +420,18 @@ export interface NavigationEventSubscription { export interface NavigationScreenProp { state: S; dispatch: NavigationDispatch; - goBack: (routeKey?: (string | null)) => boolean; - navigate: ( - routeName: string, + goBack: (routeKey?: string | null) => boolean; + navigate(options: { + routeName: string; + params?: NavigationParams; + action?: NavigationAction; + key?: string; + }): boolean; + navigate( + routeNameOrOptions: string, params?: NavigationParams, - action?: NavigationAction - ) => boolean; + action?: NavigationAction, + ): boolean; setParams: (newParams: NavigationParams) => boolean; addListener: ( eventName: string, diff --git a/types/react-navigation/react-navigation-tests.tsx b/types/react-navigation/react-navigation-tests.tsx index 0f68b653b1..2fcec1c53c 100644 --- a/types/react-navigation/react-navigation-tests.tsx +++ b/types/react-navigation/react-navigation-tests.tsx @@ -60,6 +60,7 @@ class StartScreen extends React.Component { return ( + ); } @@ -70,6 +71,13 @@ class StartScreen extends React.Component { }; this.props.navigation.navigate(ROUTE_NAME_NEXT_SCREEN, params); } + private readonly navigateDifferentlyToNextScreen = (): void => { + const params = { + id: this.props.navigation.state.params && this.props.navigation.state.params.id, + name: this.props.navigation.state.params && this.props.navigation.state.params.s, + }; + this.props.navigation.navigate({routeName: ROUTE_NAME_NEXT_SCREEN, params}); + } } const ROUTE_NAME_NEXT_SCREEN = "NextScreen";