@@ -79,16 +79,23 @@ React Navigation starts with the navigation tree:
7979
80802 . Create a root navigator.
8181
82- Define your root navigator with a ` createXNavigator ` function and render it with [ ` createStaticNavigation ` ] ( static-configuration.md#createstaticnavigation ) :
82+ Define your root navigator with a ` createXNavigator ` function, create screen configs with the matching [ ` createXScreen ` ] ( static-configuration.md#createxscreen ) helper, and render it with [ ` createStaticNavigation ` ] ( static-configuration.md#createstaticnavigation ) :
8383
8484 ``` tsx
8585 import { createStaticNavigation } from ' @react-navigation/native' ;
86- import { createNativeStackNavigator } from ' @react-navigation/native-stack' ;
86+ import {
87+ createNativeStackNavigator ,
88+ createNativeStackScreen ,
89+ } from ' @react-navigation/native-stack' ;
8790
8891 const RootStack = createNativeStackNavigator ({
8992 screens: {
90- Home: HomeScreen ,
91- Profile: ProfileScreen ,
93+ Home: createNativeStackScreen ({
94+ screen: HomeScreen ,
95+ }),
96+ Profile: createNativeStackScreen ({
97+ screen: ProfileScreen ,
98+ }),
9299 },
93100 });
94101
@@ -112,7 +119,9 @@ React Navigation starts with the navigation tree:
112119 ``` ts
113120 const RootStack = createNativeStackNavigator ({
114121 screens: {
115- Profile: ProfileScreen ,
122+ Profile: createNativeStackScreen ({
123+ screen: ProfileScreen ,
124+ }),
116125 },
117126 });
118127 ```
@@ -134,14 +143,20 @@ React Navigation starts with the navigation tree:
134143 ``` ts
135144 const HomeTabs = createBottomTabNavigator ({
136145 screens: {
137- Home: HomeScreen ,
138- Feed: FeedScreen ,
146+ Home: createBottomTabScreen ({
147+ screen: HomeScreen ,
148+ }),
149+ Feed: createBottomTabScreen ({
150+ screen: FeedScreen ,
151+ }),
139152 },
140153 });
141154
142155 const RootStack = createNativeStackNavigator ({
143156 screens: {
144- Main: HomeTabs ,
157+ Main: createNativeStackScreen ({
158+ screen: HomeTabs ,
159+ }),
145160 },
146161 });
147162 ```
@@ -155,10 +170,10 @@ React Navigation starts with the navigation tree:
155170 ``` ts
156171 const RootStack = createNativeStackNavigator ({
157172 screens: {
158- Profile: {
173+ Profile: createNativeStackScreen ( {
159174 screen: ProfileScreen ,
160175 linking: ' profile/:userId' ,
161- },
176+ }) ,
162177 },
163178 });
164179 ```
@@ -172,14 +187,14 @@ React Navigation starts with the navigation tree:
172187 ``` ts
173188 const RootStack = createNativeStackNavigator ({
174189 screens: {
175- Home: {
190+ Home: createNativeStackScreen ( {
176191 if: useIsSignedIn ,
177192 screen: HomeScreen ,
178- },
179- SignIn: {
193+ }) ,
194+ SignIn: createNativeStackScreen ( {
180195 if: useIsSignedOut ,
181196 screen: SignInScreen ,
182- },
197+ }) ,
183198 },
184199 });
185200 ```
@@ -191,10 +206,10 @@ React Navigation starts with the navigation tree:
191206 ``` ts
192207 const RootStack = createNativeStackNavigator ({
193208 screens: {
194- NotFound: {
209+ NotFound: createNativeStackScreen ( {
195210 screen: NotFoundScreen ,
196211 linking: ' *' ,
197- },
212+ }) ,
198213 },
199214 });
200215 ```
@@ -353,7 +368,10 @@ export default function FeedLayout() {
353368Model the same screens and options with explicit nested navigators:
354369
355370``` tsx title="src/RootStack.tsx"
356- import { createNativeStackNavigator } from ' @react-navigation/native-stack' ;
371+ import {
372+ createNativeStackNavigator ,
373+ createNativeStackScreen ,
374+ } from ' @react-navigation/native-stack' ;
357375
358376import { HomeTabs } from ' ./HomeTabs' ;
359377import { NotFoundScreen } from ' ./NotFoundScreen' ;
@@ -364,29 +382,32 @@ export const RootStack = createNativeStackNavigator({
364382 headerBackButtonDisplayMode: ' minimal' ,
365383 },
366384 screens: {
367- Main: {
385+ Main: createNativeStackScreen ( {
368386 screen: HomeTabs ,
369387 options: {
370388 headerShown: false ,
371389 },
372- },
373- Profile: {
390+ }) ,
391+ Profile: createNativeStackScreen ( {
374392 screen: ProfileScreen ,
375393 linking: ' profile/:userId' ,
376394 options: {
377395 presentation: ' modal' ,
378396 },
379- },
380- NotFound: {
397+ }) ,
398+ NotFound: createNativeStackScreen ( {
381399 screen: NotFoundScreen ,
382400 linking: ' *' ,
383- },
401+ }) ,
384402 },
385403});
386404```
387405
388406``` tsx title="src/HomeTabs.tsx"
389- import { createBottomTabNavigator } from ' @react-navigation/bottom-tabs' ;
407+ import {
408+ createBottomTabNavigator ,
409+ createBottomTabScreen ,
410+ } from ' @react-navigation/bottom-tabs' ;
390411import { Platform } from ' react-native' ;
391412
392413import { FeedStack } from ' ./FeedStack' ;
@@ -398,7 +419,7 @@ export const HomeTabs = createBottomTabNavigator({
398419 tabBarMinimizeBehavior: ' onScrollDown' ,
399420 },
400421 screens: {
401- Home: {
422+ Home: createBottomTabScreen ( {
402423 screen: HomeScreen ,
403424 options: {
404425 tabBarLabel: ' Home' ,
@@ -413,8 +434,8 @@ export const HomeTabs = createBottomTabNavigator({
413434 },
414435 }),
415436 },
416- },
417- Feed: {
437+ }) ,
438+ Feed: createBottomTabScreen ( {
418439 screen: FeedStack ,
419440 linking: ' feed' ,
420441 options: {
@@ -430,13 +451,16 @@ export const HomeTabs = createBottomTabNavigator({
430451 },
431452 }),
432453 },
433- },
454+ }) ,
434455 },
435456});
436457```
437458
438459``` tsx title="src/FeedStack.tsx"
439- import { createNativeStackNavigator } from ' @react-navigation/native-stack' ;
460+ import {
461+ createNativeStackNavigator ,
462+ createNativeStackScreen ,
463+ } from ' @react-navigation/native-stack' ;
440464
441465import { FeedListScreen } from ' ./FeedListScreen' ;
442466import { PostScreen } from ' ./PostScreen' ;
@@ -446,22 +470,22 @@ export const FeedStack = createNativeStackNavigator({
446470 headerLargeTitleEnabled: true ,
447471 },
448472 screens: {
449- FeedList: {
473+ FeedList: createNativeStackScreen ( {
450474 screen: FeedListScreen ,
451475 linking: ' ' ,
452476 options: {
453477 headerSearchBarOptions: {
454478 placeholder: ' Search posts' ,
455479 },
456480 },
457- },
458- Post: {
481+ }) ,
482+ Post: createNativeStackScreen ( {
459483 screen: PostScreen ,
460484 linking: ' :postId' ,
461485 options: {
462486 headerLargeTitleEnabled: false ,
463487 },
464- },
488+ }) ,
465489 },
466490});
467491```
0 commit comments