expo-router
Version:
Expo Router is a file-based router for React Native and web applications.
58 lines • 2.23 kB
TypeScript
import { NavigationProp, NavigationState } from '@react-navigation/native';
import { Href } from './types';
/**
* Returns the underlying React Navigation [`navigation` prop](https://reactnavigation.org/docs/navigation-prop)
* to imperatively access layout-specific functionality like `navigation.openDrawer()` in a
* [Drawer](/router/advanced/drawer/) layout.
*
* @example
* ```tsx app/index.tsx
* import { useNavigation } from 'expo-router';
*
* export default function Route() {
* // Access the current navigation object for the current route.
* const navigation = useNavigation();
*
* return (
* <View>
* <Text onPress={() => {
* // Open the drawer view.
* navigation.openDrawer();
* }}>
* Open Drawer
* </Text>
* </View>
* );
* }
* ```
*
* When using nested layouts, you can access higher-order layouts by passing a secondary argument denoting the layout route.
* For example, `/menu/_layout.tsx` is nested inside `/app/orders/`, you can use `useNavigation('/orders/menu/')`.
*
* @example
* ```tsx app/orders/menu/index.tsx
* import { useNavigation } from 'expo-router';
*
* export default function MenuRoute() {
* const rootLayout = useNavigation('/');
* const ordersLayout = useNavigation('/orders');
*
* // Same as the default results of `useNavigation()` when invoked in this route.
* const parentLayout = useNavigation('/orders/menu');
* }
* ```
*
* If you attempt to access a layout that doesn't exist, an error such as
* `Could not find parent navigation with route "/non-existent"` is thrown.
*
*
* @param parent Provide an absolute path such as `/(root)` to the parent route or a relative path like `../../` to the parent route.
* @returns The navigation object for the current route.
*
* @see React Navigation documentation on [navigation dependent functions](https://reactnavigation.org/docs/navigation-prop/#navigator-dependent-functions)
* for more information.
*/
export declare function useNavigation<T = Omit<NavigationProp<ReactNavigation.RootParamList>, 'getState'> & {
getState(): NavigationState | undefined;
}>(parent?: string | Href): T;
//# sourceMappingURL=useNavigation.d.ts.map