@@ -311,6 +311,15 @@ export function useResolvedPath(
311311export  function  useRoutes ( 
312312  routes : RouteObject [ ] , 
313313  locationArg ?: Partial < Location >  |  string 
314+ ) : React . ReactElement  |  null  { 
315+   return  useRoutesImpl ( routes ,  locationArg ) ; 
316+ } 
317+ 
318+ // Internal implementation with accept optional param for RouterProvider usage 
319+ export  function  useRoutesImpl ( 
320+   routes : RouteObject [ ] , 
321+   locationArg ?: Partial < Location >  |  string , 
322+   dataRouterState ?: RemixRouter [ "state" ] 
314323) : React . ReactElement  |  null  { 
315324  invariant ( 
316325    useInRouterContext ( ) , 
@@ -320,8 +329,6 @@ export function useRoutes(
320329  ) ; 
321330
322331  let  {  navigator }  =  React . useContext ( NavigationContext ) ; 
323-   let  dataRouterContext  =  React . useContext ( DataRouterContext ) ; 
324-   let  dataRouterStateContext  =  React . useContext ( DataRouterStateContext ) ; 
325332  let  {  matches : parentMatches  }  =  React . useContext ( RouteContext ) ; 
326333  let  routeMatch  =  parentMatches [ parentMatches . length  -  1 ] ; 
327334  let  parentParams  =  routeMatch  ? routeMatch . params  : { } ; 
@@ -434,10 +441,7 @@ export function useRoutes(
434441        } ) 
435442      ) , 
436443    parentMatches , 
437-     // Only pass along the dataRouterStateContext when we're rendering from the 
438-     // RouterProvider layer.  If routes is different then we're rendering from 
439-     // a descendant <Routes> tree 
440-     dataRouterContext ?. router . routes  ===  routes  ? dataRouterStateContext  : null 
444+     dataRouterState 
441445  ) ; 
442446
443447  // When a user passes in a `locationArg`, the associated routes need to 
0 commit comments