Merge pull request #24177 from arnibarnason/master

[react-navigation]: Adding pop and popToTop to NavigationActions
This commit is contained in:
Arthur Ozga 2018-03-15 12:37:05 -07:00 committed by GitHub
commit fcd5dee4f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 1 deletions

View File

@ -247,6 +247,25 @@ export interface NavigationUriAction extends NavigationUriActionPayload {
type: 'Navigation/URI';
}
export interface NavigationPopActionPayload {
// n: the number of routes to pop of the stack
n?: number;
immediate?: boolean;
}
export interface NavigationPopAction extends NavigationPopActionPayload {
type: 'Navigation/POP';
}
export interface NavigationPopToTopActionPayload {
key?: string;
immediate?: boolean;
}
export interface NavigationPopToTopAction extends NavigationPopToTopActionPayload {
type: 'Navigation/POP_TO_TOP';
}
export interface NavigationStackViewConfig {
mode?: 'card' | 'modal';
headerMode?: HeaderMode;
@ -287,7 +306,9 @@ export type NavigationStackAction =
| NavigationNavigateAction
| NavigationBackAction
| NavigationSetParamsAction
| NavigationResetAction;
| NavigationResetAction
| NavigationPopAction
| NavigationPopToTopAction;
export type NavigationTabAction =
NavigationInitAction
@ -731,12 +752,16 @@ export namespace NavigationActions {
const RESET: 'Navigation/RESET';
const SET_PARAMS: 'Navigation/SET_PARAMS';
const URI: 'Navigation/URI';
const POP: 'Navigation/POP';
const POP_TO_TOP: 'Navigation/POP_TO_TOP';
function init(options?: NavigationInitActionPayload): NavigationInitAction;
function navigate(options: NavigationNavigateActionPayload): NavigationNavigateAction;
function reset(options: NavigationResetActionPayload): NavigationResetAction;
function back(options?: NavigationBackActionPayload): NavigationBackAction;
function setParams(options: NavigationSetParamsActionPayload): NavigationSetParamsAction;
function pop(options: NavigationPopActionPayload): NavigationPopAction;
function popToTop(options: NavigationPopToTopActionPayload): NavigationPopToTopAction;
}
/**

View File

@ -34,6 +34,8 @@ import {
HeaderBackButton,
Header,
NavigationParams,
NavigationPopAction,
NavigationPopToTopAction,
} from 'react-navigation';
// Constants
@ -363,3 +365,13 @@ const setParamsAction: NavigationSetParamsAction = NavigationActions.setParams({
foo: "bar"
}
});
const popAction: NavigationPopAction = NavigationActions.pop({
n: 1,
immediate: true
});
const popToTopAction: NavigationPopToTopAction = NavigationActions.popToTop({
key: "foo",
immediate: true
});