@@ -61,33 +61,40 @@ export function StackContainer({ routeConfigs }: StackContainerProps) {
6161
6262 return (
6363 < Stack . Host ref = { hostRef } >
64- { stackNavState . stack . map (
65- ( { Component, options, activityMode, routeKey } ) => {
66- const stackNavigationContext : StackNavigationContextPayload = {
67- routeKey,
68- routeOptions : { ...options } ,
69- push : navMethods . pushAction ,
70- pop : navMethods . popAction ,
71- preload : navMethods . preloadAction ,
72- batch : navMethods . batchAction ,
73- setRouteOptions : navMethods . setRouteOptions ,
74- } ;
64+ { stackNavState . stack . map ( ( { options, activityMode, routeKey, name } ) => {
65+ const stackNavigationContext : StackNavigationContextPayload = {
66+ routeKey,
67+ routeOptions : { ...options } ,
68+ push : navMethods . pushAction ,
69+ pop : navMethods . popAction ,
70+ preload : navMethods . preloadAction ,
71+ batch : navMethods . batchAction ,
72+ setRouteOptions : navMethods . setRouteOptions ,
73+ } ;
7574
76- return (
77- < Stack . Screen
78- key = { routeKey }
79- { ...options }
80- activityMode = { activityMode }
81- screenKey = { routeKey }
82- onDismiss = { onScreenDismissed }
83- onNativeDismiss = { onScreenNativelyDismissed } >
84- < StackNavigationContext . Provider value = { stackNavigationContext } >
85- < Component />
86- </ StackNavigationContext . Provider >
87- </ Stack . Screen >
88- ) ;
89- } ,
90- ) }
75+ const matchingConfig = routeConfigs . find (
76+ config => config . name === name ,
77+ ) ;
78+ if ( ! matchingConfig ) {
79+ throw new Error ( `[Stack] No config matches the "${ name } " route name` ) ;
80+ }
81+
82+ const Component = matchingConfig . Component ;
83+
84+ return (
85+ < Stack . Screen
86+ key = { routeKey }
87+ { ...options }
88+ activityMode = { activityMode }
89+ screenKey = { routeKey }
90+ onDismiss = { onScreenDismissed }
91+ onNativeDismiss = { onScreenNativelyDismissed } >
92+ < StackNavigationContext . Provider value = { stackNavigationContext } >
93+ < Component />
94+ </ StackNavigationContext . Provider >
95+ </ Stack . Screen >
96+ ) ;
97+ } ) }
9198 </ Stack . Host >
9299 ) ;
93100}
0 commit comments