Commit fa8babb
authored
fix(react): Remove routes from shared set on
Removes a `<Routes>`'s routes from the module-level `allRoutes` set when
it unmounts, so they can't be matched against a later, unrelated
navigation.
The set accumulated every route ever mounted and never removed any. Once
two independent routers had each been mounted, `matchRoutes` ran over
the union of both, so a navigation into one could pick up a param name
from the other and produce a hybrid transaction name like `/bar/:fooId`
instead of `/bar/:barId`.
I've taken out the route adding logic from the effect we had and added
another one so that we can isolate the add/remove to the same effect to
avoid relying on refs that can be fidgity in dev/prod and strict modes.
closes #22782
Will backport to v10<Routes> unmount (#22792)1 parent 2a913fd commit fa8babb
4 files changed
Lines changed: 120 additions & 7 deletions
File tree
- dev-packages/e2e-tests/test-applications/react-router-6-descendant-routes
- src
- pages
- tests
- packages/react/src/reactrouter-compat-utils
Lines changed: 18 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
106 | 122 | | |
107 | 123 | | |
108 | 124 | | |
109 | 125 | | |
110 | 126 | | |
111 | 127 | | |
112 | 128 | | |
| 129 | + | |
| 130 | + | |
113 | 131 | | |
114 | 132 | | |
115 | 133 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
19 | 25 | | |
20 | 26 | | |
21 | 27 | | |
| |||
Lines changed: 60 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
296 | 356 | | |
297 | 357 | | |
298 | 358 | | |
| |||
Lines changed: 36 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
766 | 766 | | |
767 | 767 | | |
768 | 768 | | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
769 | 778 | | |
770 | 779 | | |
771 | 780 | | |
772 | 781 | | |
773 | 782 | | |
774 | | - | |
775 | | - | |
776 | 783 | | |
777 | 784 | | |
778 | 785 | | |
| |||
1049 | 1056 | | |
1050 | 1057 | | |
1051 | 1058 | | |
1052 | | - | |
| 1059 | + | |
| 1060 | + | |
1053 | 1061 | | |
1054 | 1062 | | |
1055 | 1063 | | |
1056 | 1064 | | |
1057 | 1065 | | |
| 1066 | + | |
1058 | 1067 | | |
1059 | 1068 | | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
1060 | 1082 | | |
1061 | 1083 | | |
1062 | 1084 | | |
| |||
1355 | 1377 | | |
1356 | 1378 | | |
1357 | 1379 | | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
1358 | 1391 | | |
1359 | 1392 | | |
1360 | | - | |
1361 | | - | |
1362 | 1393 | | |
1363 | | - | |
1364 | | - | |
1365 | 1394 | | |
1366 | 1395 | | |
1367 | 1396 | | |
| |||
0 commit comments