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 }