@@ -19,7 +19,8 @@ export default function computeChangedRoutes(prevState, nextState) {
1919 const leaveIndex = prevRoutes . findIndex ( ( route ) => (
2020 nextRoutes . indexOf ( route ) === - 1 ||
2121 routeParamsChanged ( route , prevState , nextState ) ||
22- queryParamsChanged ( route , prevState , nextState )
22+ queryParamsChanged ( route , prevState , nextState ) ||
23+ routeChanged ( route , prevState , nextState )
2324 ) ) ;
2425 const leaveRoutes = leaveIndex === - 1 ? [ ] : prevRoutes . slice ( leaveIndex ) ;
2526
@@ -44,7 +45,7 @@ function routeParamsChanged(route, prevState, nextState) {
4445}
4546
4647function queryParamsChanged ( route , prevState , nextState ) {
47- const queryKeys = route . queryKeys ;
48+ const queryKeys = route . asyncLoaderProps && route . asyncLoaderProps . queryKeys || route . queryKeys ;
4849 if ( ! queryKeys ) {
4950 return false ;
5051 }
@@ -63,3 +64,8 @@ function queryParamsChanged(route, prevState, nextState) {
6364 const keys = queryKeys . split ( / [ , ] + / ) ;
6465 return keys . some ( ( key ) => prevQuery [ key ] !== nextQuery [ key ] ) ;
6566}
67+
68+ function routeChanged ( route , prevState , nextState ) {
69+ const routeChanged = route . asyncLoaderProps && route . asyncLoaderProps . routeChanged ;
70+ return routeChanged && routeChanged ( route , prevState , nextState ) ;
71+ }
0 commit comments