File tree Expand file tree Collapse file tree 2 files changed +85
-1
lines changed Expand file tree Collapse file tree 2 files changed +85
-1
lines changed Original file line number Diff line number Diff line change @@ -268,4 +268,88 @@ describe("useOutlet", () => {
268
268
` ) ;
269
269
} ) ;
270
270
} ) ;
271
+
272
+ describe ( "when child route without element prop" , ( ) => {
273
+ it ( "returns nested route element" , ( ) => {
274
+ function Layout ( ) {
275
+ return useOutlet ( ) ;
276
+ }
277
+
278
+ let renderer : TestRenderer . ReactTestRenderer ;
279
+ TestRenderer . act ( ( ) => {
280
+ renderer = TestRenderer . create (
281
+ < MemoryRouter initialEntries = { [ "/users/profile" ] } >
282
+ < Routes >
283
+ < Route path = "/" element = { < Layout /> } >
284
+ < Route path = "users" >
285
+ < Route path = "profile" element = { < h1 > Profile</ h1 > } />
286
+ </ Route >
287
+ </ Route >
288
+ </ Routes >
289
+ </ MemoryRouter >
290
+ ) ;
291
+ } ) ;
292
+
293
+ expect ( renderer . toJSON ( ) ) . toMatchInlineSnapshot ( `
294
+ <h1>
295
+ Profile
296
+ </h1>
297
+ ` ) ;
298
+ } ) ;
299
+
300
+ it ( "returns the context" , ( ) => {
301
+ function Layout ( ) {
302
+ return useOutlet ( [ "Mary" , "Jane" , "Michael" ] ) ;
303
+ }
304
+
305
+ function Profile ( ) {
306
+ let outletContext = useOutletContext < string [ ] > ( ) ;
307
+
308
+ return (
309
+ < div >
310
+ < h1 > Profile</ h1 >
311
+ < ul >
312
+ { outletContext . map ( ( name ) => (
313
+ < li key = { name } > { name } </ li >
314
+ ) ) }
315
+ </ ul >
316
+ </ div >
317
+ ) ;
318
+ }
319
+
320
+ let renderer : TestRenderer . ReactTestRenderer ;
321
+ TestRenderer . act ( ( ) => {
322
+ renderer = TestRenderer . create (
323
+ < MemoryRouter initialEntries = { [ "/users/profile" ] } >
324
+ < Routes >
325
+ < Route path = "/" element = { < Layout /> } >
326
+ < Route path = "users" >
327
+ < Route path = "profile" element = { < Profile /> } />
328
+ </ Route >
329
+ </ Route >
330
+ </ Routes >
331
+ </ MemoryRouter >
332
+ ) ;
333
+ } ) ;
334
+
335
+ expect ( renderer . toJSON ( ) ) . toMatchInlineSnapshot ( `
336
+ <div>
337
+ <h1>
338
+ Profile
339
+ </h1>
340
+ <ul>
341
+ <li>
342
+ Mary
343
+ </li>
344
+ <li>
345
+ Jane
346
+ </li>
347
+ <li>
348
+ Michael
349
+ </li>
350
+ </ul>
351
+ </div>
352
+ ` ) ;
353
+ } ) ;
354
+ } ) ;
271
355
} ) ;
Original file line number Diff line number Diff line change @@ -1070,7 +1070,7 @@ function _renderMatches(
1070
1070
return (
1071
1071
< RouteContext . Provider
1072
1072
children = {
1073
- match . route . element !== undefined ? match . route . element : < Outlet />
1073
+ match . route . element !== undefined ? match . route . element : outlet
1074
1074
}
1075
1075
value = { {
1076
1076
outlet,
You can’t perform that action at this time.
0 commit comments