Avoid breaking useRouter() type change (#42430)

Since `useRouter()` can still be used in `pages` alone and should always
be a valid instance we shouldn't change the default return type to avoid
a breaking type change.

Fixes: https://github.com/vercel/next.js/issues/42409

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the
feature request has been accepted for implementation before opening a
PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm build && pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
This commit is contained in:
JJ Kasper 2022-11-03 11:54:54 -07:00 committed by GitHub
parent 8fa78a5e3c
commit 152f51c6bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -130,7 +130,7 @@ export default singletonRouter as SingletonRouter
export { default as withRouter } from './with-router'
export function useRouter(throwOnMissing: true): NextRouter
export function useRouter(): NextRouter | null
export function useRouter(): NextRouter
export function useRouter(throwOnMissing?: boolean) {
const router = React.useContext(RouterContext)
if (!router && throwOnMissing) {