# Navigation ## Element `Element (React.ComponentType)` --- ## store `store (Store)` --- ## registerComponent `registerComponent(componentName: string, getComponentClassFunc: ComponentProvider): ComponentType` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L52) Every navigation component in your app must be registered with a unique name. The component itself is a traditional React component extending React.Component. --- ## registerComponentWithRedux `registerComponentWithRedux(componentName: string, getComponentClassFunc: ComponentProvider, ReduxProvider: any, reduxStore: any): ComponentType` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L60) Utility helper function like registerComponent, wraps the provided component with a react-redux Provider with the passed redux store --- ## setRoot `setRoot(layout: any): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L67) Reset the app to a new layout --- ## setDefaultOptions `setDefaultOptions(options: any): void` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L74) Set default options to all screens. Useful for declaring a consistent style across the app. --- ## mergeOptions `mergeOptions(componentId: string, options: any): void` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L81) Change a component's navigation options --- ## showModal `showModal(layout: any): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L88) Show a screen as a modal. --- ## dismissModal `dismissModal(componentId: string): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L95) Dismiss a modal by componentId. The dismissed modal can be anywhere in the stack. --- ## dismissAllModals `dismissAllModals(): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L102) Dismiss all Modals --- ## push `push(componentId: string, layout: any): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L109) Push a new layout into this screen's navigation stack. --- ## pop `pop(componentId: string, params: any): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L116) Pop a component from the stack, regardless of it's position. --- ## popTo `popTo(componentId: string): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L123) Pop the stack to a given component --- ## popToRoot `popToRoot(componentId: string): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L130) Pop the component's stack to root. --- ## setStackRoot `setStackRoot(componentId: string, layout: any): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L137) Sets new root component to stack. --- ## showOverlay `showOverlay(layout: any): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L144) Show overlay on top of the entire app --- ## dismissOverlay `dismissOverlay(componentId: string): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L151) dismiss overlay by componentId --- ## getLaunchArgs `getLaunchArgs(): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L158) Resolves arguments passed on launch --- ## events `events(): EventsRegistry` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L165) Obtain the events registry instance --- ## constants `constants(): Promise` [source](https://github.com/wix/react-native-navigation/blob/v2/lib/src/Navigation.ts#L172) Constants coming from native ---