diff --git a/modules/__tests__/withRouter-test.js b/modules/__tests__/withRouter-test.js
index dab16b7b5e..9beaede170 100644
--- a/modules/__tests__/withRouter-test.js
+++ b/modules/__tests__/withRouter-test.js
@@ -128,4 +128,17 @@ describe('withRouter', function () {
done()
})
})
+
+ it('should render Component even without Router context', function (done) {
+ const MyComponent = withRouter(({ router }) => {
+ expect(router).toNotExist()
+
+ return
Hello
+ })
+
+ render((), node, function () {
+ expect(node.firstChild.textContent).toEqual('Hello')
+ done()
+ })
+ })
})
diff --git a/modules/withRouter.js b/modules/withRouter.js
index 80a8bb7913..f82a6de933 100644
--- a/modules/withRouter.js
+++ b/modules/withRouter.js
@@ -29,6 +29,10 @@ export default function withRouter(WrappedComponent, options) {
render() {
const router = this.props.router || this.context.router
+ if (!router) {
+ return
+ }
+
const { params, location, routes } = router
const props = { ...this.props, router, params, location, routes }