# Navigation ## Properties - Element (`React.ComponentType`) ## Methods ### `registerComponent(componentName: string, getComponentClassFunc: ComponentProvider): void` [source](/lib/src//Navigation.ts#52) Every navigation component in your app must be registered with a unique name. The component itself is a traditional React component extending React.Component. #### Arguments - componentName (`string`) - getComponentClassFunc (`ComponentProvider`) #### Returns - (`void`) ### `setRoot(layout: any): Promise` [source](/lib/src//Navigation.ts#59) Reset the app to a new layout #### Arguments - layout (`any`) #### Returns - (`Promise`) ### `setDefaultOptions(options: any): void` [source](/lib/src//Navigation.ts#66) Set default options to all screens. Useful for declaring a consistent style across the app. #### Arguments - options (`any`) #### Returns - (`void`) ### `mergeOptions(componentId: string, options: any): void` [source](/lib/src//Navigation.ts#73) Change a component's navigation options #### Arguments - componentId (`string`) - options (`any`) #### Returns - (`void`) ### `showModal(layout: any): Promise` [source](/lib/src//Navigation.ts#80) Show a screen as a modal. #### Arguments - layout (`any`) #### Returns - (`Promise`) ### `dismissModal(componentId: string): Promise` [source](/lib/src//Navigation.ts#87) Dismiss a modal by componentId. The dismissed modal can be anywhere in the stack. #### Arguments - componentId (`string`) #### Returns - (`Promise`) ### `dismissAllModals(): Promise` [source](/lib/src//Navigation.ts#94) Dismiss all Modals #### Returns - (`Promise`) ### `push(componentId: string, layout: any): Promise` [source](/lib/src//Navigation.ts#101) Push a new layout into this screen's navigation stack. #### Arguments - componentId (`string`) - layout (`any`) #### Returns - (`Promise`) ### `pop(componentId: string, params: any): Promise` [source](/lib/src//Navigation.ts#108) Pop a component from the stack, regardless of it's position. #### Arguments - componentId (`string`) - params (`any`) #### Returns - (`Promise`) ### `popTo(componentId: string): Promise` [source](/lib/src//Navigation.ts#115) Pop the stack to a given component #### Arguments - componentId (`string`) #### Returns - (`Promise`) ### `popToRoot(componentId: string): Promise` [source](/lib/src//Navigation.ts#122) Pop the component's stack to root. #### Arguments - componentId (`string`) #### Returns - (`Promise`) ### `setStackRoot(componentId: string, layout: any): Promise` [source](/lib/src//Navigation.ts#129) Sets new root component to stack. #### Arguments - componentId (`string`) - layout (`any`) #### Returns - (`Promise`) ### `showOverlay(layout: any): Promise` [source](/lib/src//Navigation.ts#136) Show overlay on top of the entire app #### Arguments - layout (`any`) #### Returns - (`Promise`) ### `dismissOverlay(componentId: string): Promise` [source](/lib/src//Navigation.ts#143) dismiss overlay by componentId #### Arguments - componentId (`string`) #### Returns - (`Promise`) ### `events(): EventsRegistry` [source](/lib/src//Navigation.ts#150) Obtain the events registry instance #### Returns - (`EventsRegistry`)