or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

tessl/npm-react-navigation--core

Core utilities for building navigators in React Native applications

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@react-navigation/core@7.12.x

To install, run

npx @tessl/cli install tessl/npm-react-navigation--core@7.12.0

0

# React Navigation Core

1

2

React Navigation Core provides the foundational utilities and building blocks for creating custom navigation components in React Native applications. It offers fundamental hooks like `useNavigationBuilder` for building custom navigators, core navigation context providers, and essential utilities for managing navigation state and lifecycle.

3

4

## Package Information

5

6

- **Package Name**: @react-navigation/core

7

- **Package Type**: npm

8

- **Language**: TypeScript

9

- **Installation**: `npm install @react-navigation/core`

10

11

## Core Imports

12

13

```typescript

14

import {

15

BaseNavigationContainer,

16

useNavigation,

17

useRoute,

18

useFocusEffect,

19

useIsFocused,

20

useNavigationBuilder,

21

useNavigationState,

22

useNavigationContainerRef,

23

usePreventRemove,

24

useTheme,

25

createNavigationContainerRef,

26

createNavigatorFactory,

27

getPathFromState,

28

getStateFromPath,

29

getActionFromState,

30

findFocusedRoute,

31

NavigationContext,

32

ThemeProvider,

33

NavigationIndependentTree,

34

PreventRemoveProvider

35

} from "@react-navigation/core";

36

```

37

38

For CommonJS:

39

40

```javascript

41

const {

42

BaseNavigationContainer,

43

useNavigation,

44

useRoute,

45

useFocusEffect,

46

useIsFocused,

47

useNavigationBuilder,

48

createNavigationContainerRef,

49

getPathFromState,

50

getStateFromPath

51

} = require("@react-navigation/core");

52

```

53

54

## Basic Usage

55

56

```typescript

57

import React from 'react';

58

import {

59

BaseNavigationContainer,

60

useNavigation,

61

useRoute,

62

useFocusEffect

63

} from "@react-navigation/core";

64

65

// Basic navigation container setup

66

function App() {

67

return (

68

<BaseNavigationContainer>

69

<MyNavigator />

70

</BaseNavigationContainer>

71

);

72

}

73

74

// Using navigation and route hooks

75

function MyScreen() {

76

const navigation = useNavigation();

77

const route = useRoute();

78

79

// Focus effect for screen lifecycle

80

useFocusEffect(

81

React.useCallback(() => {

82

console.log('Screen focused');

83

return () => {

84

console.log('Screen unfocused');

85

};

86

}, [])

87

);

88

89

return (

90

<View>

91

<Text>Current route: {route.name}</Text>

92

<Button

93

title="Go Back"

94

onPress={() => navigation.goBack()}

95

/>

96

</View>

97

);

98

}

99

```

100

101

## Architecture

102

103

React Navigation Core is built around several key architectural components:

104

105

- **Hook System**: Core hooks (`useNavigation`, `useRoute`, `useFocusEffect`) provide navigation functionality throughout the component tree

106

- **Context Providers**: React contexts distribute navigation state, theme, and route information across components

107

- **Navigation Container**: `BaseNavigationContainer` manages the root navigation state and provides the foundation for all navigation

108

- **Builder Pattern**: `useNavigationBuilder` enables creation of custom navigators with consistent APIs

109

- **State Management**: Navigation state is managed centrally with utilities for serialization and deep linking

110

- **Event System**: Navigation events (focus, blur, state changes) enable reactive programming patterns

111

112

## Capabilities

113

114

### Navigation Hooks

115

116

Core hooks for accessing navigation functionality from anywhere in the component tree, including navigation methods, route information, screen lifecycle, and navigator building.

117

118

```typescript { .api }

119

function useNavigation<T = NavigationProp<ParamListBase>>(): T;

120

function useRoute<T = RouteProp<ParamListBase>>(): T;

121

function useIsFocused(): boolean;

122

function useFocusEffect(effect: () => undefined | void | (() => void)): void;

123

function useNavigationBuilder<State, RouterOptions, ActionHelpers, ScreenOptions, EventMap>(

124

router: RouterFactory<State, NavigationAction, RouterOptions>,

125

options: DefaultNavigatorOptions<ParamListBase, string, State, ScreenOptions, EventMap, any> & RouterOptions

126

): NavigationBuilderResult<State, RouterOptions, ActionHelpers, ScreenOptions, EventMap>;

127

function useNavigationState<ParamList extends ParamListBase, T>(

128

selector: (state: NavigationState<ParamList>) => T

129

): T;

130

function useNavigationContainerRef<ParamList extends ParamListBase>(): NavigationContainerRef<ParamList>;

131

function usePreventRemove(preventRemove: boolean, callback: (data: { action: NavigationAction }) => void): void;

132

function useTheme(): ReactNavigation.Theme;

133

```

134

135

[Navigation Hooks](./hooks.md)

136

137

### Container and Context Components

138

139

Navigation container and context providers that manage navigation state and distribute it throughout the app component tree.

140

141

```typescript { .api }

142

function BaseNavigationContainer(props: NavigationContainerProps): React.JSX.Element;

143

144

interface NavigationContainerProps {

145

initialState?: InitialState;

146

onStateChange?: (state: NavigationState | undefined) => void;

147

onReady?: () => void;

148

theme?: ReactNavigation.Theme;

149

children: React.ReactNode;

150

}

151

```

152

153

[Containers and Contexts](./containers-and-contexts.md)

154

155

### State and Path Utilities

156

157

Utilities for converting navigation state to URL paths and vice versa, enabling deep linking and URL generation.

158

159

```typescript { .api }

160

function getPathFromState(

161

state: NavigationState | PartialState<NavigationState>,

162

options?: PathConfigOptions

163

): string;

164

165

function getStateFromPath(

166

path: string,

167

options?: PathConfigOptions

168

): PartialState<NavigationState> | undefined;

169

```

170

171

[State and Path Utilities](./utilities.md)

172

173

### Static Navigation

174

175

Utilities for creating navigation structures from static configuration objects, enabling declarative navigation setup.

176

177

```typescript { .api }

178

function createComponentForStaticNavigation<T extends StaticNavigation<any, any, any>>(

179

tree: T,

180

displayName?: string

181

): React.ComponentType<{}>;

182

183

function createPathConfigForStaticNavigation(

184

tree: StaticNavigation<any, any, any>,

185

options?: { initialRouteName?: string },

186

auto?: boolean

187

): any;

188

```

189

190

[Static Navigation](./static-navigation.md)

191

192

### Navigator Factory Functions

193

194

Factory functions for creating navigation containers and navigator components with proper typing and lifecycle management.

195

196

```typescript { .api }

197

function createNavigationContainerRef<ParamList extends ParamListBase>(): React.RefObject<NavigationContainerRef<ParamList>>;

198

199

function createNavigatorFactory<State, ScreenOptions, EventMap, Navigation>(

200

Navigator: React.ComponentType<any>

201

): NavigatorFactory<State, ScreenOptions, EventMap, Navigation>;

202

```

203

204

### Additional Utilities

205

206

Additional utility functions for navigation state manipulation, route finding, and validation.

207

208

```typescript { .api }

209

function getActionFromState(

210

state: NavigationState | PartialState<NavigationState>,

211

options?: PathConfigOptions

212

): NavigationAction | undefined;

213

214

function findFocusedRoute(

215

state: NavigationState | PartialState<NavigationState>

216

): NavigationRoute<ParamListBase> | undefined;

217

218

function getFocusedRouteNameFromRoute(

219

route: NavigationRoute<ParamListBase>

220

): string | undefined;

221

222

function validatePathConfig(

223

config: PathConfigMap<ParamListBase>,

224

root?: boolean

225

): void;

226

```

227

228

### Core Types and Interfaces

229

230

Essential TypeScript interfaces and types for navigation props, route objects, and configuration.

231

232

```typescript { .api }

233

interface NavigationProp<

234

ParamList extends ParamListBase = ParamListBase,

235

RouteName extends keyof ParamList = keyof ParamList

236

> {

237

navigate<RouteName extends keyof ParamList>(

238

name: RouteName,

239

params?: ParamList[RouteName]

240

): void;

241

goBack(): void;

242

dispatch(action: NavigationAction): void;

243

setOptions(options: Partial<ScreenOptions>): void;

244

isFocused(): boolean;

245

canGoBack(): boolean;

246

}

247

248

interface RouteProp<

249

ParamList extends ParamListBase = ParamListBase,

250

RouteName extends keyof ParamList = keyof ParamList

251

> {

252

key: string;

253

name: RouteName;

254

params: ParamList[RouteName];

255

}

256

```

257

258

[Core Types and Interfaces](./types.md)

259

260

### Router Actions and Types

261

262

Re-exported functionality from `@react-navigation/routers` including action creators and router implementations.

263

264

```typescript { .api }

265

namespace CommonActions {

266

function navigate(name: string, params?: object): NavigationAction;

267

function goBack(): NavigationAction;

268

function reset(state: PartialState<NavigationState>): NavigationAction;

269

function setParams(params: object): NavigationAction;

270

}

271

272

namespace StackActions {

273

function push(name: string, params?: object): NavigationAction;

274

function pop(count?: number): NavigationAction;

275

function popToTop(): NavigationAction;

276

function replace(name: string, params?: object): NavigationAction;

277

}

278

279

namespace TabActions {

280

function jumpTo(name: string, params?: object): NavigationAction;

281

}

282

283

namespace DrawerActions {

284

function openDrawer(): NavigationAction;

285

function closeDrawer(): NavigationAction;

286

function toggleDrawer(): NavigationAction;

287

}

288

```

289

290

[Core Types and Interfaces](./types.md)