Skip to content

Warning: ReactDOM.render is no longer supported in React 18. #832

Closed
@pgarciacamou

Description

@pgarciacamou

What is your question:

Is there a way to remove the Warning: ReactDOM.render is no longer supported in React 18. warning from @testing-library/react-hooks -> renderHook?

Related PRs:

  1. Package to support React 18 #654
  2. Support for React 18 react-testing-library#509

As suggested in some blog posts and some GitHub issues, I upgraded react-testing library to support React 18 createRoot:

npm i --save-dev @testing-library/jest-dom@latest @testing-library/react@latest @testing-library/react-hooks@latest
    "@testing-library/jest-dom": "5.16.4",
    "@testing-library/react": "13.1.1",
    "@testing-library/react-hooks": "8.0.0",

But I keep getting this warning:

Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot

When I do:

import { renderHook } from '@testing-library/react-hooks'
import { someHook } from '../'

test('...', () => {
  const { result } = renderHook(() => someHook())
})

The screenshot below shows a barebones test using @testing-library/react-hooks without any gimmicks and it throws a warning.

Screen Shot 2022-05-01 at 12 13 32 PM

Notice that I do not get this warning when using @testing-library/react. The screenshot below shows a barebones component that uses a hook and doesn't throw a warning.

Screen Shot 2022-05-01 at 12 29 49 PM

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions