Skip to content

Commit d904b94

Browse files
committed
Use Router.ready callback to make sure Router.router is defined
1 parent 7e53155 commit d904b94

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/ConnectedRouter.js

+16-12
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,26 @@ const createConnectedRouter = structure => {
4343

4444
componentDidMount() {
4545
const { shallowTimeTravel, Router } = this.props
46-
patchRouter(Router, { shallowTimeTravel })
47-
this.unsubscribe = this.store.subscribe(this.listenStoreChanges)
48-
Router.router.events.on('routeChangeStart', this.disableTimeTravel)
49-
Router.router.events.on('routeChangeError', this.enableTimeTravel)
50-
Router.router.events.on('routeChangeComplete', this.enableTimeTravel)
51-
Router.router.events.on('routeChangeCompleteWithAction', this.listenRouteChanges)
46+
Router.ready(() => {
47+
patchRouter(Router, { shallowTimeTravel })
48+
this.unsubscribe = this.store.subscribe(this.listenStoreChanges)
49+
Router.router.events.on('routeChangeStart', this.disableTimeTravel)
50+
Router.router.events.on('routeChangeError', this.enableTimeTravel)
51+
Router.router.events.on('routeChangeComplete', this.enableTimeTravel)
52+
Router.router.events.on('routeChangeCompleteWithAction', this.listenRouteChanges)
53+
})
5254
}
5355

5456
componentWillUnmount() {
5557
const { Router } = this.props
56-
unpatchRouter(Router)
57-
this.unsubscribe()
58-
Router.router.events.off('routeChangeStart', this.disableTimeTravel)
59-
Router.router.events.off('routeChangeError', this.enableTimeTravel)
60-
Router.router.events.off('routeChangeComplete', this.enableTimeTravel)
61-
Router.router.events.off('routeChangeCompleteWithAction', this.listenRouteChanges)
58+
if (this.unsubscribe) {
59+
unpatchRouter(Router)
60+
this.unsubscribe()
61+
Router.router.events.off('routeChangeStart', this.disableTimeTravel)
62+
Router.router.events.off('routeChangeError', this.enableTimeTravel)
63+
Router.router.events.off('routeChangeComplete', this.enableTimeTravel)
64+
Router.router.events.off('routeChangeCompleteWithAction', this.listenRouteChanges)
65+
}
6266
}
6367

6468
enableTimeTravel = () => {

0 commit comments

Comments
 (0)