mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-02-10 22:47:02 +08:00
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
/**
|
|
* @flow
|
|
*
|
|
* Helpers for navigation.
|
|
*/
|
|
|
|
import type {
|
|
NavigationAction,
|
|
NavigationProp,
|
|
NavigationParams,
|
|
} from './TypeDefinition';
|
|
|
|
import NavigationActions from './NavigationActions';
|
|
|
|
export default function<S: *>(navigation: NavigationProp<S, NavigationAction>) {
|
|
return {
|
|
...navigation,
|
|
goBack: (key?: ?string): boolean =>
|
|
navigation.dispatch(
|
|
NavigationActions.back({
|
|
key: key === undefined ? navigation.state.key : key,
|
|
})
|
|
),
|
|
navigate: (
|
|
routeName: string,
|
|
params?: NavigationParams,
|
|
action?: NavigationAction
|
|
): boolean =>
|
|
navigation.dispatch(
|
|
NavigationActions.navigate({
|
|
routeName,
|
|
params,
|
|
action,
|
|
})
|
|
),
|
|
/**
|
|
* For updating current route params. For example the nav bar title and
|
|
* buttons are based on the route params.
|
|
* This means `setParams` can be used to update nav bar for example.
|
|
*/
|
|
setParams: (params: NavigationParams): boolean =>
|
|
navigation.dispatch(
|
|
NavigationActions.setParams({
|
|
params,
|
|
key: navigation.state.key,
|
|
})
|
|
),
|
|
};
|
|
}
|