Overloaded navigate method to handle new navigation options parameters

This commit is contained in:
Árni Benedikt Árnason
2018-03-09 17:20:33 +01:00
parent e5ef9ecef2
commit 94a484cff4
2 changed files with 19 additions and 5 deletions

View File

@@ -420,12 +420,18 @@ export interface NavigationEventSubscription {
export interface NavigationScreenProp<S> {
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,

View File

@@ -60,6 +60,7 @@ class StartScreen extends React.Component<NavigationScreenProps> {
return (
<View>
<TouchableOpacity onPress={this.navigateToNextScreen} />
<TouchableOpacity onPress={this.navigateDifferentlyToNextScreen} />
</View>
);
}
@@ -70,6 +71,13 @@ class StartScreen extends React.Component<NavigationScreenProps> {
};
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";